我正在尝试使用Django构建一个餐馆管理应用程序,我的Customer模型有一个名称,订单,一个表整数字段和一个is_active布尔字段。我有一个工作表单,它创建一个Customer obj并将其命令分配给逗号,然后使用模型方法进行渲染。
我想要做的是在客户字段中有多个订单字段,然后某个订单字段应直接链接到固定价格。
我对Django很新,所以我最好解释一下:当你创建一个客户对象时,你应该看到一个名称字段,多个订单字段,它们也应该有一些数量字段然后应将其与固定价格挂钩,因为我将使用它来计算总价:fixed_price_of_order乘以quantity_ordered。
我试图找到类似的东西,但我还没有真正能够做到。 Django可能不是最好的工具,但这是我必须使用的。
修改 这就是我今天所拥有的,比昨天更进一步,我也可以手动输入订单,但这很容易出错并且使用起来并不是很有趣。
class Item(models.Model):
name = models.CharField(max_length=120)
price = models.IntegerField(default=0, unique=False)
def __str__(self):
return self.name
class Customer(models.Model):
name = models.CharField(blank=False, max_length=120, unique=True)
order = models.ManyToManyField(Item)
table = models.IntegerField(blank=True)
pub_date = models.DateTimeField()
is_active = models.BooleanField(default=True)
def __str__(self):
return self.name
现在我需要的是一种跟踪数量的方法,我考虑向Item添加数量字段,但这不会起作用,因为并非每个订单都有相同数量的Item。我查了一下,看到了一些关于通过桌子的东西,无法理解它是什么或以任何方式使用它。我现在可以使用手动字段输入。
答案 0 :(得分:0)
您应该阅读django Widgets,然后使用SelectMultiple小部件。
顺便说一下。请粘贴您的代码。帮助会更容易。
答案 1 :(得分:0)
根据我的理解,你需要3张桌子, 客户,了解特定客户的详细信息, 项目,针对特定项目, 订单,每个客户的每个订单。
以下是一个例子:
class Item(models.Model):
name = ...........
price = ..........
class Customer(models.Model):
name = .........
..........
class Order(models.Model):
customer = models.ForeignKey(Customer, related_name='orders', null=True, blank=True)
item = models.ForeignKey(Item, related_name='orders', null=True, blank=True)
order_date = models.DateField(auto_now=True)
is_cancelled = models.BooleanField(default=False)
is_delivered = models.BooleanField(default=False)
quantity = models.IntegerField()
通过这样做,您可以让单个客户拥有与单个或多个项目相关的多个订单。可以将数量字段添加到“订单”表中,以便每个订单都可以拥有自己的数量。
这就是我的想法,希望你能得到你想要的东西。