【发布时间】:2011-10-26 21:27:51
【问题描述】:
django 文档涵盖 cleaning and validating FIELDS that depend on each other,但我找不到任何涵盖相互依赖的表单的内容。
我有一个 HTML 表单,其中包含标准 django 表单和 django 表单集。 formset 中每个表单的正确验证完全取决于主表单中的值(例如,选中主表单上的一个框,以及 formset 中每个表单上的特定字段 突然变得需要)。
我的直觉是“简单地”将整个主表单传递给表单集验证调用,如下所示:
def my_view(request):
MyFormSet = formset_factory(MyForm, extra=2, can_order=True)
if request.method == 'POST':
form = MainForm(request.POST)
formset = MyFormSet(request.POST)
if form.is_valid() and formset.is_valid(form): # <-- ?!?!
# The formset is now validated based on the form
但是,为了实现这一点,我相信我必须同时覆盖表单集 is_valid() 以及基础表单 is_valid() 和 clean() 方法。所以,它很快就会变得非常混乱。
有没有更好的方法来做到这一点?
【问题讨论】:
标签: django validation django-forms