Я застрял, чтобы создать пользовательскую проверку для имени пользователя мои forms.py
from .models import User
from django import forms
from django.contrib.auth import get_user_model
from django.contrib.auth.forms import UserCreationForm
from django.core.exceptions import ValidationError
from PIL import Image
from django.utils.translation import ugettext_lazy as _
class SignUpForm(UserCreationForm):
email = forms.EmailField(max_length=254, help_text='Required. Inform a valid email address.')
first_name = forms.CharField(max_length=30, required=False, help_text='Optional.')
last_name = forms.CharField(max_length=30, required=False, help_text='Optional.')
phone = forms.CharField(max_length=30, help_text='Phone number', required=False)
# vv = forms.CharField(max_length=100, help_text='custom', required=False)
picture = forms.ImageField()
username = forms.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='required.',validators=[validate_even], max_length=150),
class Meta:
model = get_user_model()
fields =('username', 'first_name', 'last_name', 'email', 'password1', 'password2', 'phone','picture')
мой 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),
мой validators.py -
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},
)
Какую ошибку я допустил, я не могу понять.Как вызвать мой пользовательский метод в validotrs?