Я пытаюсь создать регистрацию и вход в django CBV, но эта ошибка появляется, когда я нажимаю кнопку отправки на странице регистрации, напечатанной p>
поэтому у меня нет пароля1 в моих формах или моделях, это мой код, и я также установил пароль1< /strong> и password2 на none, но эта ошибка все равно появляется
view.py
from django.contrib.auth.forms import UserCreationForm
from django import forms
from django.contrib.auth.hashers import check_password
from django.contrib.auth import get_user_model
class RegisterForm(UserCreationForm):
"""Form to Create new User"""
def __init__(self, *args, hashed_code=None, **kwargs) -> None:
super(RegisterForm,self).__init__(*args, **kwargs)
self.hashed_code = hashed_code
self.fields["user_role"].widget.attrs['class'] = 'form-select form-control-lg'
# self.fields["user_role"].widget.attrs['style'] = 'direction: ltr;'
usable_password = None
password1 = None
password2 = None
code = forms.CharField(max_length=4,
required=True,
label="کد",
help_text="کد ارسال شده توسط پیام را وارد کنید"
)
def is_valid(self):
"""Return True if the form has no errors, or False otherwise."""
if not self.hashed_code:
self.add_error("code","you have not any valid code get the code first")
elif not check_password(self.data.get("code"),self.hashed_code) :
self.add_error("code","code is invalid")
return self.is_bound and not self.errors
class Meta:
model = get_user_model()
fields = ["user_role","username","code"]
Я пытаюсь создать [b]регистрацию[/b] и [b]вход[/b] в django CBV, но эта ошибка появляется, когда я нажимаю кнопку отправки на [b]странице регистрации[/b], напечатанной p> [img]https://i.sstatic.net/2fDZAfuM.png[/img] поэтому у меня нет [b]пароля1[/b] в моих [b]формах[/b] или [b]моделях[/b], это мой код, и я также установил [b]пароль1< /strong> и password2[/b] на [b]none[/b], но эта ошибка все равно появляется view.py [code]from .forms import RegisterForm from django.urls import reverse_lazy from django.shortcuts import redirect from django.contrib.auth.views import LogoutView as genericLogoutView from django.contrib.auth.views import LoginView as genericLoginView from django.views.generic import CreateView from .models import User
class LoginView(genericLoginView): redirect_authenticated_user = True
class LogoutView(genericLogoutView): pass [/code] form.py [code]from django.contrib.auth.forms import UserCreationForm from django import forms from django.contrib.auth.hashers import check_password from django.contrib.auth import get_user_model
class RegisterForm(UserCreationForm): """Form to Create new User""" def __init__(self, *args, hashed_code=None, **kwargs) -> None: super(RegisterForm,self).__init__(*args, **kwargs) self.hashed_code = hashed_code
code = forms.CharField(max_length=4, required=True, label="کد", help_text="کد ارسال شده توسط پیام را وارد کنید" )
def is_valid(self): """Return True if the form has no errors, or False otherwise.""" if not self.hashed_code: self.add_error("code","you have not any valid code get the code first") elif not check_password(self.data.get("code"),self.hashed_code) : self.add_error("code","code is invalid") return self.is_bound and not self.errors
class Meta: model = get_user_model() fields = ["user_role","username","code"] [/code] models.py [code]from django.db import models from django.contrib.auth.models import AbstractUser from .validators import PhoneUsernameValidator
class Role(models.Model): role_name = models.CharField(verbose_name="نقش کاربر",max_length=50)
def __str__(self): return self.role_name
class User(AbstractUser): username_validator = PhoneUsernameValidator() username = models.CharField( verbose_name = "تلفن همراه", unique=True, validators=[username_validator], error_messages={ "unique": "A user with that username already exists.", }, max_length=11 ) user_role = models.ForeignKey(verbose_name="نقش کاربر",to=Role,on_delete=models.SET_NULL,null=True)
REQUIRED_FIELDS = [] [/code] есть идеи, как исправить эту ошибку?