Передайте форму в шаблон после регистрации - PullRequest
1 голос
/ 12 марта 2011

Я использую приложение django-registration для регистрации.После регистрации (независимо от того, успешна она или нет) я хотел бы вернуться на любую страницу, на которую перенаправляет приложение регистрации, , но Я хочу передать форму входа в этот шаблон.

Примерно так:

def register(request):
    registered = reg_views.register(request, backend='registration.backends.default.DefaultBackend', template_name='zzz/index.html')
    login_form = AuthenticationForm()
    return render_to_response(registered, { 'login_form': login_form })

и затем в шаблоне есть обычное:

{{ login_form.as_p }}

Вот что я пытаюсь достичь: я хочу использовать функциональность приложения регистрации.Однако после (не) успешной регистрации мне необходимо отобразить форму входа на странице.Эта форма входа должна быть передана из представления (принцип СУХОЙ).

Спасибо, Матяс

Ответы [ 2 ]

0 голосов
/ 28 марта 2013

Вам не нужно копировать какой-либо код из register представления django-registration.

Скажем, вы хотите обработать аутентификацию в вашем приложении с именем accounts

Это входит в accounts/views.py

def registration_complete(request):
    login_form = AuthenticationForm()
    return render_to_response("registration_complete.html", {"login_form": login_form})

accounts/urls.py

url(r'^registration_complete/', 'accounts.views.registration_complete', name='accounts_registration_complete'),

В вашем шаблоне registration_complete.html

{{login_form.as_p}}

Теперь все готово к настройке registration_complete.

register просмотр django-registration занимает success_url, куда он перенаправляется после успешной регистрации.

Укажите это success_url в качестве URL, который мы создали в аккаунтах.

Ваш urls.py:

urlpatterns = patterns('',
    (r'^registration/register/$', 'registration.register', {'backend': 'registration.backends.default.DefaultBackend', 'success_url': 'accounts_registration_complete'}),
    (r'^registration/', include('registration.urls')),
)

Теперь после регистрации пользователь будет перенаправлен на страницу с формой входа.

0 голосов
/ 12 марта 2011

urls.py

urlpatterns = patterns('',
     (r'^accounts/', include('external.registration.urls')),
)

new urls.py

urlpatterns = patterns('',
     (r'^accounts/register', 'point.to.new.view'),
     (r'^accounts/', include('external.registration.urls')),
)

С этим набором вы можете скопировать представление регистрагде-нибудь в вашем коде из приложения регистрации, и измените его, как вам угодно, без необходимости вносить изменения в приложение самостоятельно.Вид реестра довольно прост, поэтому у вас не будет проблем с внесением некоторых изменений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...