我有一个自定义的User
模型,它只包含两个必填字段:email
和password
。在
我还有一个自定义的UserCreationForm
,它提示用户输入他们的email
和一个password
。在
不幸的是,除了min_length
,表单不验证密码。在
如何在settings.AUTH_PASSWORD_VALIDATORS
中启用密码验证器?对象是distc的列表,而不是验证器,所以我不确定如何使用它们。在
class UserCreationForm(forms.ModelForm):
password1 = forms.CharField(
widget=forms.PasswordInput(attrs=form_attrs.password),
min_length=8,
strip=True,
)
class Meta:
model = User
fields = ('email',)
widgets = {
'email': forms.EmailInput(attrs=form_attrs.email),
}
def save(self, commit=True):
user = super().save(commit=False)
user.set_password(self.cleaned_data.get('password1'))
if commit:
user.save()
return user
django应用于其内置表单的方式是
在此之后,将在表单内部手动进行验证。在
这意味着您可以从
^{pr2}$django.contrib.auth
导入password_validation
,并使用此函数用于获取验证器和窗体内部
^{3}$你可以看看内置的登记表是怎么做到的。在
正如另一个回答者提到的,Django使用
django.contrib.auth.password_validation.validate_password
方法来验证密码。您可以创建一个clean_password1
方法并将其添加到其中,如下所示:相关问题 更多 >
编程相关推荐