我有产品和订单的简单的Django模型结构中,通过确定一个给定的顺序中的每个产品的数量的中间表链接:Django的形式与来自数据库填充输入
models.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对象,存储用户订购的每个产品的数量记录。
但是,我找不到一个好方法来创建一个表单,它将自动从数据库中提取所有产品,并添加字段来表示给定产品的订购数量。理想情况下,结果会是这个样子,但自动编码:
forms.py:
class OrderForm(forms.Form):
product_1_quantity = forms.IntegerField()
product_2_quantity = forms.IntegerField()
product_3_quantity = forms.IntegerField()
....等,每个产品。什么是最好的方法来做到这一点?它是否涉及为数据库中的每个产品创建新字段的for循环?
这很好用 - 非常感谢您的帮助!我将在另一篇文章中更详细地回答这个问题,以便人们可以看到整个代码。 – Sam
很高兴我可以帮助:) – devdob