Ранее я использовал более старую версию django-registration, которая, похоже, устарела. Поскольку мой сервер не позволяет мне устанавливать плагины Python, мне нужно использовать «регистрацию» как отдельное приложение django. Теперь мой вопрос: что мне нужно изменить, чтобы регистрация работала как django-app? Могу ли я просто скопировать «регистрацию» в мой каталог проекта django, добавить его в настройки, и оно должно работать? Раньше не было такого понятия, как 'backend', теперь backend init file с функцией get_backend, которая принимает 'path' в качестве аргумента. Я думаю, этот путь отправляется через URL, верно?
url(r'^activate/(?P<activation_key>\w+)/$',
activate,
{'backend': 'registration.backends.default.DefaultBackend'},
name='registration_activate'),
Внутри этого каталога также есть файл init с классом DefaultBackend, с активацией и регистрацией классов.
http://paste.pocoo.org/show/225790/
Они оба используют сигналы. Нужно ли мне как-то беспокоиться об этих сигналах? (Я все еще не совсем понимаю, для чего они используются).
Последнее. Ранее после регистрации он перенаправлял либо заданный success_url, либо задавал шаблон таким образом:
return HttpResponseRedirect(success_url or reverse('registration_complete'))
Теперь код, отвечающий за это выглядит:
if success_url is None:
to, args, kwargs = backend.post_registration_redirect(request, new_user)
return redirect(to, *args, **kwargs)
else:
return redirect(success_url)
и post_registration_redirect:
def post_registration_redirect(self, request, user):
"""
Return the name of the URL to redirect to after successful
user registration.
"""
return ('registration_complete', (), {})
Так почему же это изменилось таким образом, если оно все еще просто перенаправлялось на 'registration_complete'? Арги и кварги пусты, так зачем?