Django 我想在验证用户名期间调用validate\u-even方法,但它显示未定义名称“validate\u-even”
我一直在为用户名my forms.py创建自定义验证 我的模特是 我的validators.py是Django 我想在验证用户名期间调用validate\u-even方法,但它显示未定义名称“validate\u-even”,django,python-3.x,django-models,Django,Python 3.x,Django Models,我一直在为用户名my forms.py创建自定义验证 我的模特是 我的validators.py是 我不明白我犯了什么错误。如何在validotrs中调用我的自定义方法?在models.py和forms.py的开头添加此行: from .validators import validate_even 您是否记得将该方法包含到表单文件中?我没有看到进口声明。您好,欢迎来到SO。Django是一个Python框架,因此如果您想使用Django,显然希望您学习Python。我建议你在做其他事情之前花
我不明白我犯了什么错误。如何在validotrs中调用我的自定义方法?在models.py和forms.py的开头添加此行:
from .validators import validate_even
您是否记得将该方法包含到表单文件中?我没有看到进口声明。您好,欢迎来到SO。Django是一个Python框架,因此如果您想使用Django,显然希望您学习Python。我建议你在做其他事情之前花点时间完成整个官方Python教程,否则你会花时间在这里发布一些非常基本的东西。好的,我确实做了。现在它显示为UserAbstractUser指定的未知字段username包括一个username字段,删除models.py中的username字段行,然后./manage.py makemigrations&&./manage.py migrate并再次运行服务器。您好,我想为username字段使用自定义验证器和自定义帮助文本。如果我将其从models.py中删除,那么如何对用户名字段使用自定义验证?@ARUNIMADAS您为用户指定的未知字段用户名的问题完全无关,请发布一个新问题。@ARUNIMADAS验证是用户在forms.py中设置的,而不是models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
from PIL import Image
from django.contrib.auth.validators import UnicodeUsernameValidator
class User(AbstractUser):
pp = models.CharField(max_length=100, blank=True, null=True)
xx = models.CharField(max_length=100, blank=True, null=True)
dd = models.CharField(max_length=100, blank=True, null=True)
vv = models.CharField(max_length=100, blank=True, null=True)
picture = models.ImageField(upload_to = 'uploads/', default = 'var/www/html/typo3/uploads/no-img.jpg')
username = models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='baal required.',validators=[validate_even], max_length=150),
import re
from django.core import validators
from django.utils.deconstruct import deconstructible
from django.utils.translation import gettext_lazy as _
from django.core.exceptions import ValidationError
def validate_even(value):
if value % 2 != 0:
raise ValidationError(
_('%(value)s is not an even number'),
params={'value': value},
)
from .validators import validate_even