表单字段尊重DRY django

给定Django中的一些表单(为简单起见,取下面的表单)

class LoginRegisterForm(forms.Form):

  email = forms.EmailField(label="Email", max_length=100)
  password = forms.CharField(label="Password", widget=forms.PasswordInput(), max_length=100)

我们试图限制这些表单的提交,如果有额外的字段提交,所以我们在表单类中添加了以下方法。

    def correct_fields(self):
      return set(self.data.keys()) == {"Email", "Password"}

而下面的代码中 views.py 对应于提交此表格的方法。

if form.is_valid() and form.correct_fields:

我们怎样才能避免写 EmailPassword 在表单的定义和correct_fields方法中都使用了这个词?django是否提供了一个内置的功能来防止表单在没有提交正确的字段时被提交?如果给了正确的字段和一些附加字段,表单还是会被提交的)。如果没有提供这个功能,如何避免两次写字段?

解决方案:

您没有指定的字段 required=False所需. 如同有关文件所指出的那样。required=… 参数[Django-doc] 说。

默认情况下,每个 Field 阶层 假设该值是必需的所以,如果你通过一个 空值–可以是None或空字符串("") – 然后 clean()提出 ValidationError 异常。

所以它已经验证了 data 确有 emailpassword. 您可以通过以下方式定义可选字段。

class LoginRegisterForm(forms.Form):
    email = forms.EmailField(label="Email", max_length=100)
    password = forms.CharField(label="Password", widget=forms.PasswordInput(), max_length=100)
    info = forms.CharField(label="Tell us someting", required=False, intial='')

给TA打赏
共{{data.count}}人
人已打赏
未分类

当我从GoogleAppsScript创建事件到Google日历时,在google脚本的参数列表后出现语法错误:缺少)。

2022-9-13 15:13:40

未分类

C#如何在Winforms中仅在dataGridView中显示文件名而不显示完整路径?

2022-9-13 15:13:43

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索