需要选择formset中的两个表单

时间:2011-05-11 15:44:03

标签: django django-forms

我有一个有两种形式的formset。

形式:

class PresClinicForm(forms.Form):
    _names = list(PresClinic.objects.values_list('pres_clinic_id', 'pres_clinic_name'))
    _names.append(["New", u'Nova entrada'])

    pres_name = forms.ChoiceField(widget=RadioSelect(), choices=_names, label=
        "", required=True)

PresClinicFormSet = formset_factory(PresClinicForm, extra=2)

的观点:

if request.method == 'POST':
    formset1 = PresClinicFormSet(request.POST, request.FILES, prefix='pres_clinic')
    if formset1.is_valid():
        choice = formset1.cleaned_data
    return render_to_response('template.html', {'options': options})

模板:

    <form method="post" action="">
    <div>
    {{ formset1.management_form}}
        {% for form in formset1.forms %}
            {{ form }}
        {% endfor %}
        <input type="submit" value="Guardar" />
    </div>    
</form>   

用户必须在每种形式中选择一个选项 我在forms.py中尝试了required = True,但是如果我只选择一个选项,那么无论如何都可以。

如果用户只选择一个选项,它就不起作用。这就是我想要实现的......

有人知道怎么做吗?

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您可以使用Matthew Flanagan的代码,要求表单集中至少有一个表单作为起点有效并将其集成到您的工作流程中:http://wadofstuff.blogspot.com/2009/08/requiring-at-least-one-inline-formset.html

希望能帮到你。

答案 1 :(得分:0)

请查看Mark的问题以获得此答案: Django: Make all formset forms required?

注意,你只能使用带有django 1.3的formset,而django 1.1的clean_data会出错。