from django.db import models class Grouped_order(models.Model): name = models.CharField(max_length=100, null=True) # optionnal orga = models.CharField(max_length=100) # a changer, utiliser ForeignKey de user date = models.DateField('Date de livraison') def __str__(self): return self.name if self.name else f"Commande groupée {self.pk} du {self.date} organisée par {self.orga}" class Order(models.Model): grouped_order = models.ForeignKey(Grouped_order, on_delete=models.CASCADE,related_name="order_set") author = models.CharField(max_length=100, verbose_name='Personne qui passe la commande') # a changer, utiliser ForeignKey de user def __str__(self): return f"Commande de {self.author} pour la commande groupée {self.grouped_order.pk}" class Item(models.Model): name = models.CharField(max_length=100) grouped_order = models.ForeignKey(Grouped_order, on_delete=models.CASCADE) # à transformer en manytomany quand il y aura un catalogue ordered_nb = models.IntegerField(default=0) def __str__(self): return f"{self.name} dans la commande groupée {self.grouped_order.pk}" class OrderedItem(models.Model): """Item in one specific Order, and its number""" nb = models.PositiveSmallIntegerField(default=0) # works up to 32767 order = models.ForeignKey(Order, on_delete=models.CASCADE, related_name="ordered_items") item = models.ForeignKey(Item, on_delete=models.CASCADE, related_name="orders")