相关疑难解决方法(0)

django formsets confusion(validation,required,empty_permitted)

我真的发现django formsets令人困惑.

我特别遇到以下概念的问题,我并不理解:

formset足够聪明,可以忽略未更改的额外表单.

谈论代码试图太聪明.这应该是什么意思?为什么我甚至想要那个?

然后,试图理解以前的概念,我看到了人

在所需的表格中制作表格.

这是另一个我无法理解的概念.什么是表格中的必填表格,为什么我需要制作表格?再一次没有记录.

然后来到我的实际问题,其他人似乎已经有了,但他们无法真正解释为什么他们修复它的方式他们修复它.

为什么在以下示例中,formset是有效的,而具有相同输入的单个表单将无效?

import django
class MyForm(django.forms.Form):
    start = django.forms.DateField()
    end = django.forms.DateField()

data =  {
    'form-TOTAL_FORMS': '1',
    'form-MAX_NUM_FORMS': '',
    'form-INITIAL_FORMS': '0',
    'form-0-start': '',
    'form-0-end': '',
}

MyFormSet = formset_factory(MyForm)
formset = MyFormSet(data)
#fee_forms[0].empty_permitted = False

print formset.is_valid()
# --- returns True ---
print formset.errors

f = MyForm({'start': '', 'end': ''})
print f.is_valid()
# --- returns False ---
print f.errors
Run Code Online (Sandbox Code Playgroud)

将empty_permitted设置为False似乎为我提供了预期的结果(由于缺少'start'和'end',formset无效).这是另一个未记载的功能......

有人花些时间解释一下吗?

谢谢

django django-forms

11
推荐指数
1
解决办法
6972
查看次数

标签 统计

django ×1

django-forms ×1