订单模型的客户模型,其中包含Django中的价格值

时间:2017-05-05 16:58:12

标签: python django models

我正在尝试使用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。我查了一下,看到了一些关于通过桌子的东西,无法理解它是什么或以任何方式使用它。我现在可以使用手动字段输入。

2 个答案:

答案 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()

通过这样做,您可以让单个客户拥有与单个或多个项目相关的多个订单。可以将数量字段添加到“订单”表中,以便每个订单都可以拥有自己的数量。

这就是我的想法,希望你能得到你想要的东西。