擅长:python、mysql、java
<p>我发现了,如果有兴趣请评论。</p>
<p>(在Django 1.7.4中)
扩展表单,代码如下:</p>
<pre><code>class MyForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
for key, field in self.fields.iteritems():
self.fields[key].required = False
class Meta:
model = MyModel
exclude = []
field_1 = forms.CharField(label="field_1_label")
field_2 = forms.CharField(label="field_2_label", widget=forms.Textarea(attrs={'class': 'width100 h4em'}),)
field_3 = forms.CharField(label="field_3_label", widget=forms.TextInput(attrs={'class': 'width100'}),)
field_4 = forms.ModelChoiceField(label='field_4_label', queryset=AnotherModel.objects.all().order_by("order") )
class MyForm_Extended_1(MyForm):
field_1 = None
class MyForm_Extended_2(MyForm):
class Meta:
model = MyModel
exclude =[
'field_1',
]
</code></pre>
<p>MyForm_Extended_1将field_1设置为None(db中的列更新为空)</p>
<p>MyForm_Extended_2忽略该字段(在保存期间忽略db中的列)</p>
<p>所以,为了我的目的,我使用第二种方法。</p>