django表单仅在添加时添加额外字段

时间:2011-02-21 11:09:44

标签: django django-forms

只有在表单添加条目而不编辑条目时,才可以在表单上创建额外的字段。我想这将是 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字段。我想我可以有两种形式,但想知道是否有更简洁的方式?

1 个答案:

答案 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)