- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 Django 中制作了一个 ModelForm 用于注册新用户。它有 4 个字段(username
、email
、password
和 confirm_password
)。我想为 password
字段添加一些验证。例如,如果密码少于 8 个字符或密码与用户名相似,则引发错误消息。我该怎么做?
这是我的 forms.py
文件:
from django.contrib.auth.models import User
from django import forms
class user_form(forms.ModelForm):
password = forms.CharField(widget = forms.PasswordInput)
confirm_password = forms.CharField(widget = forms.PasswordInput)
class Meta:
model = User
fields = ['username','email', 'password','confirm_password']
我的 settings.py
已经包含以下验证器:
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
}
]
它已经在 settings.py
中,但是我的表单密码没有被验证。
最佳答案
您需要阅读有关 Password Validation 的 Django 文档.
总而言之,您需要更新 settings.py
中的 AUTH_PASSWORD_VALIDATORS
设置。
Django 带有一些内置的密码验证器:
UserAttributeSimilarityValidator
(检查密码与一组用户属性之间的相似性)MinimumLengthValidator
(检查密码是否满足最小长度)CommonPasswordValidator
(检查密码是否出现在常用密码列表中)NumericPasswordValidator
(检查密码是否不完全是数字)根据您在问题中陈述的示例验证,您需要使用 MinimumLengthValidator
和 UserAttributeSimilarityValidator
。
由于您使用的是表单,因此需要手动触发密码验证,如 Django docs 中所述) 通过在验证表单时调用 django.contrib.auth.password_validation.validate_password
。
关于python - Django - 在 ModelForm 中添加密码验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47838632/
我基于几个 ModelForm 元素创建了一个表单。除了图像字段。由于缺少 ImageField form.is_valid() 总是返回 False - 即使我将 request.FILES 传递给
我需要将 CSS 类分配给表单字段,我指的是这篇 SO 帖子: CSS styling in Django forms 但是,我无法让它与扩展另一个 ModelForm 的 ModelForm 一起工
我是 Django 的新手,正在使用这个项目来学习它。我能够保存日志记录,但多对多关系不起作用。 这个“创建” View 显示了正确的形式,包括带有所有列出的加密货币的多选框(来自加密模型)。提交表单
为了确保强制用户从下拉列表中选择一个有效的值(而不是无意中保留列表集中的第一个选项而不将其更改为正确的值),我在许多必填表单域中插入了空白的选项域。。Models.py。原始forms.py(显式定义
我正在尝试使用 ModelForm 创建一个简单的 CRUD。它工作正常,只是每次我编辑时,保存都会创建一个新的数据实例。所以我编辑并在数据库中获得了一个额外的行而不是更新的行。我不知道它如何知道如何
Django 在其 ModelAdmin 对象上有自定义的“操作”,但我找不到与 ModelForm 对象类似的东西。我正在使用 Django-CMS,因此似乎无法轻松访问对象的 ListView ,
我正在尝试创建一个表单变量。默认播放器的级别为 0,他可以更改名称。以后到了1级,就可以改名字和头像了。当他3级时,他可以改变名字、头像和工作。等等... 模型.py: class Player(mo
现在正在尝试解决一个有趣的问题。 我有一个带有 image 的 Django 模型字段不是必需的,但在创建新模型实例时设置为默认值。 class Product(models.Model):
我发现Django中的ModelForm非常易于使用,并且节省了大量开发时间。 但是,当我意识到is_valid实际上保存了ModelForm时,我陷入了困境!我想知道这是否是预期的行为,还是我做错了
我的 modelForm 遇到了一个小问题,它可以工作,但是如果我尝试使用自定义 html,当我尝试遍历 form.bairro 时会出现错误。 我的型号: class Bairro(mode
在我的模型中,我有; title = models.CharField(verbose_name="eBay Listing Title",max_length=56) 使用 ModelForm,标签
我有一个非常基本的模型,上面有一个 ImageField,还有一个用于上传该图像的 ModelForm。我的表单失败,说我的图像无效,但是如果我直接从 request.FILES 实例化模型的图像,它
好的,我一直盯着这个几个小时试图弄清楚发生了什么,但无济于事。 我正在尝试使用“instance”关键字创建一个 ModelForm 以将其传递给现有模型实例,然后保存它。 这是 ModelForm(
我有模特: class TestPolja(models.Model): class Meta: verbose_name = 'Test polja' int
有这个禁用属性。但我无法将其应用于模型表单字段。我不知道该怎么做。我可以轻松地将它添加到 forms.Form 中。但是因为我使用的是小部件,所以我不知道在哪里插入它。 https://docs.dj
如何在我的模型表单中只保存选定的字段?文档对我没有帮助我的表格: class ProfileForm(forms.ModelForm): class Meta: model =
这里的 Django 初学者在让表单工作时遇到了很多麻烦。是的,我已经完成了教程并浏览了很多网络 - 我所拥有的是我在这里和其他网站上找到的东西的混合。我使用的是 Python 2.7 和 Djang
我有一个模型和一个表单 (forms.ModelForm),其中有一个 ImageField。该模型类似于: class Business(models.Model): business_na
我有一些带有用户字段的模型。 为此,我想创建一个表单混合,它将添加 self.user 实例(在 View 中提供给表单)。这可能吗? 这是示例 class UserFormMixin(object)
这个问题已经有答案了: How to update an object from edit form in Django? (2 个回答) 已关闭 7 年前。 我需要一个表格,允许在计划中创建或添加
我是一名优秀的程序员,十分优秀!