我有產品和訂單的簡單的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