@Razer1511

Почему перестала работать форма после ограничения доступа?

Подскажите пожалуйста, почему перестала работать форма? Это форма регистрации, и я сделал ограничение доступа к ней авторизованным пользователям. После внедрения функции dispatch - регистрация перестала работать ( после заполнения всех полей, и нажатия кнопки, страница будто обновляется и ничего не создаётся ).
При этом с первой частью цикла всё норм ( где редирект ).
forms.py

class BaseRegisterForm(UserCreationForm):
    username = forms.CharField(label='Имя пользователя',
                               widget=forms.TextInput(
                                   attrs={'class': 'form-control',
                                          'placeholder': 'Введите имя пользователя'}))
    email = forms.EmailField(label='Электронная почта',
                             widget=forms.EmailInput(
                                 attrs={'class': 'form-control',
                                        'placeholder': 'Введите Email'}))
    password1 = forms.CharField(label='Пароль',
                                widget=forms.PasswordInput(
                                    attrs={'class': 'form-control',
                                           'placeholder': 'Введите пароль'}))
    password2 = forms.CharField(label='Подтверждение пароля',
                                widget=forms.PasswordInput(
                                    attrs={'class': 'form-control',
                                           'placeholder': 'Подтвердите пароль'}))

    class Meta:
        model = User
        fields = ["username", "email", "password1", "password2"]


views.py

class BaseRegisterView(CreateView):
    model = User
    form_class = BaseRegisterForm
    success_url = '/'

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


html_template

<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Продолжить">
</form>


urls.py

path('signup/', BaseRegisterView.as_view(template_name='sign/signup.html'), name='signup')

  • Вопрос задан
  • 37 просмотров
Пригласить эксперта
Ответы на вопрос 1
@bacon
А теперь объясни, зачем ты в dispatch, в super решил указать другой метод, а не dispatch? Ты не понимаешь как это работает?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы