KeyError в /account/signup/'password1' [дубликат]Python

Программы на Python
Ответить
Anonymous
 KeyError в /account/signup/'password1' [дубликат]

Сообщение Anonymous »

Я пытаюсь создать регистрацию и вход в django CBV, но эта ошибка появляется, когда я нажимаю кнопку отправки на странице регистрации, напечатанной p>
Изображение
поэтому у меня нет пароля1 в моих формах или моделях, это мой код, и я также установил пароль1< /strong> и password2 на none, но эта ошибка все равно появляется
view.py

Код: Выделить всё

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 RegisterView(CreateView):

form_class = RegisterForm
template_name = "account/signup.html"
success_url = reverse_lazy("index")

def get(self, request, *args, **kwargs):
if self.request.user.is_authenticated:
return redirect("index")
return super().get(request, *args, **kwargs)

def get_form_kwargs(self, *args, **kwargs):
kwargs = super(RegisterView, self).get_form_kwargs(*args, **kwargs)
kwargs['hashed_code'] = self.request.session.get("hashed_code")
return kwargs

class LoginView(genericLoginView):
redirect_authenticated_user = True

class LogoutView(genericLogoutView):
pass
form.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"]
models.py

Код: Выделить всё

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 = []
есть идеи, как исправить эту ошибку?

Подробнее здесь: https://stackoverflow.com/questions/727 ... -password1
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»