在Django formset中向特定表单实例添加额外字段

时间:2014-07-23 17:03:11

标签: python django forms formset formsets

我正在使用Django formset为事件制作注册表单。除了第一个表单外,表单集中的所有表单都有2个字段mem1mem2。如何在第一个表单中添加额外的mem3字段?

这是我的forms.py

class EventTeamForm(forms.Form):

    event = forms.BooleanField()
    mem1 = forms.CharField(label="Member 1", max_length = 20, required = True)
    mem2 = forms.CharField(label="Member 2", max_length = 20, required = False)

class BaseEventTeamFormSet(BaseFormSet):

    def clean(self):
        if any(self.errors):
            return
        for form in self.forms:
            participating = form.cleaned_data.get('event')
            mem1 = form.cleaned_data.get('mem1')
            if participating == True:
                if mem1 == '':
                    raise forms.ValidationError("The 'Member 1' field is required.")
            if participating == False:
                if mem1 != '':
                    raise forms.ValidationError("Please tick the required event.")      

    def add_fields(self, form, index):
        super(BaseEventTeamFormSet, self).add_fields(form, index)
        form.fields["Member 3"] = forms.CharField()

0 个答案:

没有答案