Django管理表单动态添加字段

时间:2018-07-30 13:18:55

标签: django django-forms

我想动态添加字段。 我正在使用Django 1.11.2

我做到了:

class AdminOfferForm(forms.ModelForm):

    product1 = forms.ModelChoiceField(queryset=ManagerProduct.get_products_qs(), required=True)
    quantity1 = forms.IntegerField(min_value=0, required=True)
    price1 = forms.DecimalField(max_digits=10, decimal_places=c.DECIMALS, min_value=0.01, required=True)

    class Meta:
        model = Offer
        exclude = ['date_added', 'date_updated']

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        for x in range(100):
            x += 2
            self.fields['product' + str(x)] = forms.ModelChoiceField(queryset=ManagerProduct.get_products_qs(), required=False)
            self.fields['quantity' + str(x)] = forms.IntegerField(min_value=0, required=True)
            self.fields['price' + str(x)] = forms.DecimalField(max_digits=10, decimal_places=c.DECIMALS, min_value=0.01, required=True)

            self.Meta.fields.append('product' + str(x))
            self.Meta.fields.append('quantity' + str(x))
            self.Meta.fields.append('price' + str(x))

实例中的所有内容似乎都正常,我看到了这些字段,但在html中却没有出现。

我没有声明任何字段集,如果我声明了该字段集,则会收到错误消息,并且无法识别在init中创建的字段

0 个答案:

没有答案