【问题标题】:both forms in formset need to be selected需要选择formset中的两个表单
【发布时间】:2011-05-11 15:44:02
【问题描述】:

我有一个有两个表单的表单集。

表格:

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 但是如果我只选择一个选项,它仍然可以工作..

如果用户只选择一个选项,它不应该工作。这就是我试图实现的..

有人知道怎么做吗?

提前感谢您的帮助!

【问题讨论】:

    标签: django django-forms


    【解决方案1】:

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

    希望对你有所帮助。

    【讨论】:

    • 感谢您的回复。我最终使用了马克的代码。如果您在右侧看到链接的问题,他对这种情况有一个答案:)
    【解决方案2】:

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

    注意,你只能在 django 1.3 中使用 formset,在 django 1.1 中clean_data 会报错。

    【讨论】:

      猜你喜欢
      • 2013-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-22
      • 2022-11-05
      • 1970-01-01
      • 2019-04-15
      • 1970-01-01
      相关资源
      最近更新 更多