只有在表单添加条目而不编辑条目时,才可以在表单上创建额外的字段。我想这将是 init 函数的一部分,并检查实例是否已设置。目前我的表单看起来像这样
class AreaForm(forms.ModelForm):
any_locations = forms.BooleanField(label="Does this area have any locations?",
initial=True,
required=False)
class Meta:
model = Area
但是当我添加条目而不是编辑它时,我只想要any_locations
字段。我想我可以有两种形式,但想知道是否有更简洁的方式?
答案 0 :(得分:1)
您应该能够检查表单是否有实例。如果没有添加额外字段
def __init__(self, *args, **kwargs):
super(AreaForm, self).__init__(*args, **kwargs)
if 'instance' not in kwargs:
self.fields['any_locations'] = forms.BooleanField(label="Does this area have any locations?", initial=True, required=False)