У меня есть сценарий, который будет лучшим дизайном для этого.
У меня есть таблица статей (например, пицца, напитки и т. Д.)
class Articles(models.Model):
restaurant = models.ForeignKey(Restaurant, on_delete=models.CASCADE , blank=True, null=True)
articlename = models.CharField(max_length=50, null=False, blank=False)
price = models.DecimalField(max_digits=10, decimal_places=2)
category = models.ForeignKey(Categories, on_delete=models.CASCADE)
ingredient = models.ManyToManyField(Ingredient) #done
articleoptionnames = models.ForeignKey(ArticlesOptionsName , on_delete=models.CASCADE)
2-я таблица - это варианты статьи (например, начинка (1 раз, 2 или 3 раза), дополнительный соус и т. Д.)
class ArticlesOptions(models.Model):
articleoptionrestaurant = models.ForeignKey(Restaurant, on_delete=models.CASCADE , blank=True, null=True)
optionname = models.ForeignKey(ArticlesOptionsName, on_delete=models.CASCADE, related_name="optionnames")
min = models.IntegerField()
max = models.IntegerField()
choice_price = models.DecimalField(max_digits=10, decimal_places=2)
choice = models.CharField(max_length=255)
def __str__(self):
return str(self.optionname)
И таблица 3-го порядка
class orders(models.Model):
restaurant=models.ForeignKey(Restaurant, on_delete=models.CASCADE , blank=True, null=True)
articles=models.ForeignKey(Articles, on_delete=models.CASCADE , blank=True, null=True)
articleoptions=models.ManyToManyField(ArticlesOptions)
totalamount=models.DecimalField(max_digits=10, decimal_places=2)
def __str__(self):
return str(self.articles)
Клиент сможет покупать много изделий одновременно, и тогда у каждого товара есть несколько вариантов товара (например, 4 вида долива и 4 типа соуса. Пользователь может выбрать много типов долива и много типов соуса). ТАК как сделать стол заказов наилучшим образом?