Почему в django CustomUserCreationForm два раза повторяется ввод пароля?
Пишу проект на django и столкнулся с проблемой в использовании CustomUserCreationForm(UserCreationForm)
.
Так выглядит мой CustomUserCreationForm:
class CustomUserCreationForm(UserCreationForm):
groups = forms.ModelChoiceField(queryset=CustomGroup.objects.exclude(name="Жабо-проггеры"))
class Meta:
model = MyUser
fields = ("username", "first_name", "last_name", "email", "groups")
labels = {
'email': 'E-mail',
'first_name': 'Имя',
'last_name': 'Фамилия',
}
widgets = {
'email': forms.TextInput(attrs={'class': 'form-input'}),
'first_name': forms.TextInput(attrs={'class': 'form-input'}),
'last_name': forms.TextInput(attrs={'class': 'form-input'}),
}
def clean_email(self):
email = self.cleaned_data['email']
if MyUser.objects.filter(email=email).exclude(email="").exists():
raise forms.ValidationError("Такой E-mail уже существует!")
return email
Так выглядит вызов формы на страницу:
{% extends "base.html" %}
{% block title %} Регистрация {% endblock %}
{% block content %}
<h2>Регистрация</h2>
<div class="container">
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">"Регистрация"</button>
</form>
</div>
{% endblock %}
И так выглядит SignUpView:
class SignUpView(CreateView):
form_class = UserCreationForm
success_url = reverse_lazy('homepage')
template_name = "signup.html"
def post(self, request, *args, **kwargs):
form = CustomUserCreationForm(request.POST)
if form.is_valid():
user = form.save(commit=False)
user.save()
return redirect("homepage")
else:
return render(request, self.template_name, {'form': form})
Итак, проблема:
При регистрации пользователя сначала появляется следующая форма:
А потом появляется вот эта форма:
Как мне сделать так, чтобы либо во второй форме не появлялись поля для ввода паролей, либо они в себе содержали пароль введенный ранее, либо чтобы сразу возникала вторая форма для регистрации?
Я пробовал переопределить поля для паролей:
password1 = None
password2 = None
Однако это лишь убирало их во второй форме, но после попытки регистрации вызывался Exception, говорящий, что не хватает password1 и password2