2011-08-22 59 views
1

我有以下代码:如何在ModelForm中结合模型字段和非模型字段?

class ExampleModel(models.Model): 
    model_field = models.CharField() 

class ExampleForm(forms.ModelForm): 
    non_model_field = forms.HiddenInput() 
    class Meta: 
     model = ExampleModel 
     fields = ('model_field', 'non_model_field',) 

我得到一个异常:

FieldError

未知领域(S)(non_model_field)为ExampleModel

指定我怎么能结合示范田和ModelForm中的非模型字段?

+0

其实你不需要提供'fields'。也许这是导致错误。 –

+0

但我必须提供字段,因为我真正的模型类包含很多字段,而且我不想在我的表单中看到这些字段中的一些字段。 – vergspi

+0

刚刚尝试了你的方法,对我来说它正在工作。虽然:你知道'HiddenInput'是一个小部件类,而不是一个表单字段类。如果你想要一个隐藏的输入字段,可以使用类似这样的东西:'forms.CharField(max_length = 100,widget = forms.HiddenInput,required = False)'。再检查一下它是否有效。 –

回答

2

HiddenInput是一个窗口小部件类,而不是表单域类。如果你想要一个隐藏的输入字段,请使用类似这样的东西:

forms.CharField(max_length=100, widget=forms.HiddenInput, required=False)