我正在使用django-registration app进行注册。注册后(无论成功与否),我想返回注册应用重定向的任何页面,但我想将登录表单传递给该模板。
这样的事情:
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 })
然后在模板中有了ussual:
{{ login_form.as_p }}
这是我想要实现的目标: 我想利用注册应用程序的功能。但是,在(非)成功注册后,我需要能够在页面上显示登录表单。此登录表单应从视图传递(DRY原则)。
谢谢, 马加什
答案 0 :(得分:0)
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')),
)
使用此设置,您可以从注册应用程序复制代码中某处的注册视图,并根据需要进行修改,而无需自行修改应用程序。注册视图非常简单,因此您可以毫无问题地进行一些更改。
答案 1 :(得分:0)
您不需要从register
的{{1}}视图中复制任何代码。
说,您希望在名为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
。{/ p>
将此success_url
作为我们在帐户中创建的网址。
你的urls.py:
success_url
注册后,用户将被重定向到包含登录表单的页面。