Как перенаправить пользователя на нужную ссылку после регистрации? - PullRequest
0 голосов
/ 27 марта 2020

Как перенаправить пользователя на нужную ссылку после регистрации? То, что я делаю, не работает. Я хочу перенаправить на "новый_канал". Заранее спасибо.

views.py

class RegisterFormView(FormView):
form_class = UserCreationForm


success_url = "main/my_newsagent/new_channel.html"


template_name = "main/register.html"

def form_valid(self, form):

    form.save()

    return super(RegisterFormView, self).form_valid(form)

urls.py

urlpatterns = [
path('', views.index, name='index'),
path('main/register/', views.RegisterFormView.as_view(), name='register'),
path('main/login/', views.LoginFormView.as_view(), name='login'),
path('main/logout/', views.LogoutView.as_view(), name='logout'),
path('main/my_news_agent/', views.my_newsagent, name='my_newsagent'),
path('main/my_news_agent/new_channel', views.new_channel, name='new_channel'),
path('main/edit_profile', views.edit_profile, name='edit_profile'),
path('main/my_newsagent_page', views.my_newsagent_page, name='my_newsagent_page'),

path('main/my_newsagent/new_channel.html', views.new_channel, name='new_channel'),

]

1 Ответ

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

success_url должен быть не файлом, а URL-адресом (как следует из названия). Вы можете использовать функции reverse или reverse_lazy для генерации URL-адреса составного элемента:

Примечание: вам может потребоваться изменить 'new_channel' на соответствующий URL-адрес.

from django.urls import reverse_lazy

class RegisterFormView(FormView):
    form_class = UserCreationForm
    success_url = reverse_lazy('new_channel')
    template_name = "main/register.html"

    def form_valid(self, form):
        form.save()
        return super(RegisterFormView, self).form_valid(form)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...