2011-08-22 55 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)