我有一个简单的 Django 模型结构,其中包含 Products 和 Orders,由一个中间表链接,该表确定给定订单中每个产品的数量:
模型.py:
class Product(models.Model):
name = models.CharField()
class Order(models.Model):
id = models.IntegerField()
products = models.ManyToManyField(Product, through='OrderProduct')
class OrderProduct(models.Model):
order=models.ForeignKey(Order, on_delete=models.CASCADE)
product = models.ForeignKey(Product, on_delete=models.CASCADE)
quantity = models.PositiveSmallIntegerField()
我想在我的 forms.py 文件中设计一个表单,它 1)提取数据库中每个产品的列表;2) 为用户提供调整每个订购产品数量的选项(例如,在 CharField 输入中),以及 3) 创建新的 Order 和 OrderProduct 对象,这些对象存储用户订购的每个产品的数量记录。
但是,我想不出一个好方法来创建一个表单,该表单将自动从数据库中提取所有产品并添加字段来表示给定产品的订购数量。理想情况下,结果看起来像这样,但会自动编码:
表格.py:
class OrderForm(forms.Form):
product_1_quantity = forms.IntegerField()
product_2_quantity = forms.IntegerField()
product_3_quantity = forms.IntegerField()
....等等,对于每个产品。最好的方法是什么?它是否涉及为数据库中找到的每个产品创建一个新字段的“for”循环?