我在Django 1.5中使用了以下代码:
if formset.is_valid():
formset.save()
formset中的表单正在clean()内部执行检查,以确保输入某些必填字段(仅在运行时已知)。这意味着虽然用户可能不会输入任何值,但验证仍会运行,并在需要时请求输入数据。
使用Django 1.6时,此行为不再适用。如果没有变化,那么在调用formset.is_valid()时,不再调用表单的clean()方法。
我在更改日志中找不到可以解释这个新behvaiour的任何内容。即使没有进行任何更改,formset.is_valid()上是否有标志强制验证?
答案 0 :(得分:0)
似乎已跳过验证,因为formset更改了表单的edit_permitted属性。
以下更改解决了我遇到的问题:
# Was required to disable shortcut for validation when
# no data was entered
for form in formset:
form.empty_permitted = False