我有一个添加了字段和字段限制的Django ModelForm。并非所有字段都显示

时间:2013-08-26 21:33:47

标签: python django forms

我的模型形式:

class CustomerBillingForm(ModelForm):

    expiration_month = models.IntegerField(choices=(1,2,3,4,5,6,7,8,9,10,11,12))
    expiration_year = models.IntegerField(max_length=4)
    card_number = models.IntegerField(max_length=16)
    card_cvv = models.IntegerField(max_length=4)

    class Meta:
        model = Customer
        fields = ['billing_first_name', 'billing_last_name', 'billing_address',
                  'billing_address_2', 'billing_city', 'billing_state',
                  'billing_zip', 'billing_country']

当我在模板中使用此表单时,我没有获得4个自定义字段,只有“字段”列表中的字段。我无法将前4个字段添加到字段列表中。我有什么选择?

2 个答案:

答案 0 :(得分:1)

使用正确的字段类 - 在本例中为forms.IntegerField而不是models.IntegerField。您还需要更改您的参数 - 例如,将expiration_month的窗口小部件覆盖为select窗口小部件,以及您尝试设置所需的max_length的窗口小部件将maxlength参数传递给窗口小部件,并定义要使用的任何验证。

答案 1 :(得分:0)

如果您在fields中使用Meta,那么您必须列出您要使用的所有字段,即使是您要添加到表单中的字段,但模型中不存在。

您的意思是什么?您无法更改fields中的Meta?您可以更改表单上的__init__功能吗?您也可以对此表单进行子类化,并覆盖fields__init__