Регистрация Django: перенаправление после сбоя регистрации из-за отсутствия аргумента

В настоящее время я просматриваю учебник по танго с django и пытаюсь реализовать регистрацию django с перенаправлением после того, как она была успешной.

Я следовал как учебнику, так и тому, что нашел в ссылкаеще один вопрос.

Когда я регистрируюсь, я получаю

TypeError at /accounts/register/
get_success_url() missing 1 required positional argument: 'user'

urls.py

from django.conf.urls import include, url, patterns
from django.contrib import admin
from registration.backends.simple.views import RegistrationView

class MyRegistrationView(RegistrationView):
    def get_success_url(self, request, user):
        return '/student/'


urlpatterns = [
    url(r'^student/', include('student.urls')),
    url(r'^admin/', admin.site.urls),

    # Add in this url pattern to override the default pattern in accounts.
    url(r'^accounts/register/$', MyRegistrationView.as_view(), name='registration_register'),
    url(r'^accounts/', include('registration.backends.simple.urls')),
    url(r'', include('registration.auth_urls')),

]

Кто-нибудь знает, что я могу делать неправильно?

Спасибо!


person kftb    schedule 03.04.2016    source источник


Ответы (1)


С тех пор все изменилось, теперь вы указываете «пользователь» в качестве первого позиционного аргумента. И нет аргумента request для метода get_success_url. Ваш код должен выглядеть так:

class MyRegistrationView(RegistrationView):
    def get_success_url(self, user):
        return '/student/'

См. Старый RegistrationView и новый RegistrationView на github.

person v1k45    schedule 03.04.2016
comment
Спасибо, иногда это так просто. - person kftb; 03.04.2016