Я занимаюсь разработкой своего проекта в течение нескольких месяцев. Регистрация работала отлично, но в какой-то момент она перестала принимать пароль: пароль всегда сохраняется как Нет , а пользователь сохраняется в базе данных с пароль не установлен . Я никоим образом не изменил ни форму, ни представление, работающее с регистрацией, поэтому не знаю, откуда оно.
Мой код:
forms.py
class UserSignUpForm(UserCreationForm):
username = CharField(max_length=35, required=True})
email = UnicodeEmailField(required=True)
password1 = CharField(max_length=35, required=True, widget=PasswordInput)
captcha = ReCaptchaField(error_messages={'required': 'Prove you are not a robot.'})
class Meta:
model = User
fields = ('username', 'email', 'password1')
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
del self.fields['password2']
views.py
class UserSignUpView(generic.CreateView):
form_class = UserRegistrationForm
template_name = 'accounts/registration.html'
def form_valid(self, form):
form.cleaned_data['password'] = form.cleaned_data.pop('password1')
form.cleaned_data.pop('captcha', None)
user = User.objects.create_user(**form.cleaned_data)
...
return HttpResponseRedirect(reverse('account_activation_sent'))
templates.py
<div class="password">
<label for="{{ form.password1.id_for_label }}">Password</label>
</div>
{{ form.password1.errors }}
{% render_field form.password1 placeholder="Enter your password" class="text-pass" %}
My Модель пользователя :
class User(AbstractUser):
username = CharField(
max_length=150,
unique=True,
validators=[CustomUsernameValidator()],)
email = UnicodeEmailField(blank=True)
id = AutoField(primary_key=True)
uid = UUIDField(default=uuid.uuid4, editable=False)
email_confirmed = BooleanField(default=False)
is_active = BooleanField(default=False)
last_movie_seen = CharField(max_length=150, blank=True)
associated_user = OneToOneField(AssociatedUser, on_delete=CASCADE, null=True, blank=True)
Вопрос: почему form.cleaned_data ['password1'] всегда возвращает None, а пользователь всегда сохранено в базу данных с пароль не установлен ?