在 Django 中具有价格值的订单模型的客户模型

A customer model to a order model that has price values in Django

我正在尝试使用 Django 构建一个餐厅管理应用程序,我的客户模型有一个名称、订单、一个 table 整数字段和一个 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。我查了一下,看到了一些关于 through table 的东西,无法理解那是什么或使用它的任何方式。我暂时可以忍受手动输入字段。

您可能应该阅读有关 django Widgets and then use SelectMultiple 小部件的信息。

顺便说一句。请粘贴您的代码。提供帮助会容易得多。

据我了解,您需要 3 tables, 客户,对于特定客户的详细信息, Item,对于特定的项目, 订单,对于每个客户的每个订单。

这是一个例子:

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

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

这就是我的想法,希望你得到了你想要的。