настройка просмотра django-регистрации - PullRequest
4 голосов
/ 09 февраля 2011

Я использую django-registration (см .: https://bitbucket.org/ubernostrum/django-registration) в одном из моих проектов.Стандартная настройка для регистрации в django - добавить приведенный ниже код в файл urls.py

(r'^accounts/', include('registration.urls'))

, а также настроить шаблоны в папке с именем registration.

.код выше создает ссылки на регистрацию, восстановление логина и пароля, что нормально.Но в моем проекте есть некоторые другие функции, которые я обычно добавляю к своим представлениям, поэтому, если я просто добавлю include('registration.urls'), то у меня не будет возможности настроить представления, содержащие эти формы регистрации django.

Есть лиспособ вызова форм, используемых django-registration в представлении, чтобы я мог добавить еще несколько вещей к этим представлениям?

1 Ответ

6 голосов
/ 09 февраля 2011

Регистрационная форма предоставляется регистрационным бэкэндом. Проверьте registration.backends.default.DefaultBackend.

Есть метод get_form_class(request), который возвращает класс registration.forms.RegistrationForm. Все, что вам нужно сделать, это создать новый бэкэнд, наследовать от DefaultBackend и переопределить метод get_form_class() для возврата нового класса формы.

Вы можете в значительной степени сделать все, предоставив пользовательский бэкэнд, кроме изменения базового поведения приложения регистрации. Если вам нужно радикально настроить представления таким образом, чтобы обеспечение custm backend не делало разрез, то просто создайте приложение authn или users и импортируйте все биты из регистрации django, которые вы считаете полезными. Скажем, вы можете оставить модели и менеджеры по умолчанию в пространстве имен приложения registration, но подключить пользовательский бэкэнд к своим внутренним компонентам в новом приложении.

...