在 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,这样每个订单都可以有自己的数量。
这就是我的想法,希望你得到了你想要的。
我正在尝试使用 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,这样每个订单都可以有自己的数量。
这就是我的想法,希望你得到了你想要的。