我正在为我哥哥的酒吧构建一个应用程序。他将接单并收取费用。我有一个“食物”和“订单”模型。假设:
class Food(models.Model):
Name = models.CharField(max_length=50)
Price = models.DecimalField(max_digits=7, decimal_places=2)
Stock = models.BooleanField()
class Order(models.Model):
Date = models.DateField(auto_now=True)
Product = models.ForeignKey(Food, on_delete=models.PROTECT, null=True, blank=True)
Quantity = models.IntegerField()
TotalPrice = models.DecimalField(max_digits=7, decimal_places=2)
我无法弄清楚如何以相同的顺序添加一种以上的食物。还要指定每种食物的数量。
答案 0 :(得分:1)
您的模型不在这里。您需要三个模型:Order,Food和OrderItem,这是每个订单的食品列表。所以:
class Food(models.Model):
...
class Order(models.Model):
Date = models.DateField(auto_now=True)
TotalPrice = models.DecimalField(max_digits=7, decimal_places=2)
class OrderItem(models.Model):
Order = models.ForeignKey(Order, on_delete=models.PROTECT)
Product = models.ForeignKey(Food, on_delete=models.PROTECT, null=True, blank=True)
Quantity = models.IntegerField()
现在给定一个Order实例,您可以通过执行my_order.orderitem_set.all()
来获得商品。
(请注意,通常的Python样式是使用{_1}},total_price
,product
等属性的小写字母名称。)