Когда я пытаюсь проверить поле 'username' в форме Django с помощью clean_method, я получаю NameError

Вот мой файл forms.py. Я получил "NameError: name 'username' is not defined" на этой строке:

def clean_username(self):

пытается отправить эту форму, но, AFAIK, с ней все в порядке.

from .models import Blog
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
from django.core.exception import ValidationError

class PostForm(forms.ModelForm):

    class Meta:
        model = Blog
        fields = ('title', 'description',)

class SignUpForm(UserCreationForm):
    username = forms.CharField(max_length=30)
    first_name = forms.CharField(max_length=150) #, help_text='First Name')
    last_name = forms.CharField(max_length=150) #, help_text='Last Name')
    email = forms.EmailField(max_length=200, help_text='Required. Enter a valid email address')
    
    

    def clean_username(self):
        nom_de_guerre=self.cleaned_data['username']
        if User.objects.filter(username=nom_de_guerre).exists():
            raise forms.ValidationError('User with this name is already exists!')

    def clean_email(self):
        addresse_de_mail=self.cleaned_data['email']
        if User.object.filter(email=addresse_de_mail).exists():
            raise forms.ValidationError('User with this email is already exists!')

    class Meta:
        model = User
        fields = ('username', 'email', 'first_name', 'last_name', 'password1', 'password2', ) ```

Вам нужно вернуть (очищенное) значение в случае, если оно действительно, поэтому:

class SignUpForm(UserCreationForm):
    username = forms.CharField(max_length=30)
    first_name = forms.CharField(max_length=150) #, help_text='First Name')
    last_name = forms.CharField(max_length=150) #, help_text='Last Name')
    email = forms.EmailField(max_length=200, help_text='Required. Enter a valid email address')
    
    def clean_username(self):
        nom_de_guerre = self.cleaned_data['username']
        if User.objects.filter(username=nom_de_guerre).exists():
            raise forms.ValidationError('User with this name is already exists!')
        return nom_de_guerre

    def clean_email(self):
        addresse_de_mail = self.cleaned_data['email']
        if User.object.filter(email=addresse_de_mail).exists():
            raise forms.ValidationError('User with this email is already exists!')
        return addresse_de_mail

    class Meta:
        model = User
        fields = ('username', 'email', 'first_name', 'last_name')
Back to Top