Задать вопрос
@ArtemMik
Python

Почему не работает форма регистрации Django?

У меня есть шаблон html, в котором создаётся форма регистрации пользователя, форма создаётся, но при нажатии на кнопку "регистрация" ничего не происходит, прошу, пожалуйста, помочь

views.py
def Reqistration(request):
    form = SignupForm()
    if request.method == 'POST':
        if 'registration_submit' in request.POST:  # Проверяем, была ли нажата кнопка "Registration"
            form = SignupForm(request.POST)
            if form.is_valid():
                obj = User()
                obj.username = form.cleaned_data['username']
                obj.password1 = form.cleaned_data['password1']
                obj.save()
                return redirect('index')
            else:
                messages.error(request, f"Пользователь с таким именем уже существует")

    return render(request, 'sport/index.htm', {'form': form})


def index(request):
    return render(request, 'sport/index.htm')


forms.py
class SignupForm(UserCreationForm):
    class Meta:
        model = User
        fields = ('username', 'password1', 'first_name', 'last_name', 'email')
        widgets = {
            'username': forms.TextInput(attrs={'id': 'username', 'placeholder': 'Username', 'type': 'text'}),
            'password1': forms.PasswordInput(attrs={'id': 'password', 'placeholder': 'Password', 'type': 'password'})
        }
        exclude = ['first_name', 'last_name', 'email']

    def __init__(self, *args, **kwargs):
        super(SignupForm, self).__init__(*args, **kwargs)
        self.fields['password1'].widget = forms.PasswordInput(attrs={'id': 'password', 'placeholder': 'Password', 'type': 'password'})
        self.fields.pop('password2')


index.htm
{% block content %}

			<form method="post" id="reg_form">
                {% csrf_token %}
                {{ form.as_p }}
        <button name="registration_submit" type="submit" class="regBtn">Регистрация</button>
        {% endblock %}


скрин формы:

664a78398264e158303819.png
  • Вопрос задан
  • 118 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Yorito
if 'registration_submit' in request.POST
Зачем проверять нажата ли кнопка, если только таким способом форма и может засабмититься? Попробуйте убрать эту проверку, мне кажется она лишняя.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы