Django - Перенаправление регистрации на страницу входа не работает - PullRequest
0 голосов
/ 19 марта 2020

Моя регистрация выглядит как ниже

from django.contrib.auth.forms import UserCreationForm
from django.views import generic
from django.urls import reverse_lazy
class SignUpView(generic.CreateView):
  form_class = UserCreationForm
  success_url = reverse_lazy('login')
  template_name = 'signup.html'

В моем urls.py есть ниже правила перенаправления

from django.urls import path

from .views import SignUpView

urlpatterns = [
  path('signup/', SignUpView.as_view(), name='signup'),
]

Моя регистрация. html шаблон выглядит ниже

{% extends 'base.html' %}

{% block content %}
<h2>Sign Up</h2>
<form method="post">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">Sign Up</button>
</form>
{%  endblock content %}

Я пытаюсь перенаправить на страницу входа после завершения регистрации. Но это не работает, и еще одно наблюдение - я вижу статус запроса POST как 200, но если я go захожу на страницу входа, я не могу войти с этими новыми учетными данными.

Какую ошибку я делаю Любая помощь приветствуется.

Спасибо.

Я использую Django 2.1.5 с Python 3.7.4

Ответы [ 2 ]

0 голосов
/ 19 марта 2020

вам нужно определить модель в вашем createview как:

class SignUpView(generic.CreateView):
     model = user # your model name here
     form_class = UserCreationForm
     success_url = reverse_lazy('login')
     template_name = 'signup.html'
0 голосов
/ 19 марта 2020
from django.views.generic.edit import CreateView

class SignUpView(CreateView):

возможно, вы неправильно импортировали

и вам нужно переопределить form_valid() метод

def form_valid(self, form):
    valid = super(SignUpView, self).form_valid(form)
    username, password = form.cleaned_data.get('username'), form.cleaned_data.get('password1')
    new_user = authenticate(username=username, password=password)
    login(self.request, new_user)
    return valid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...