注册后将表单传递给模板

时间:2011-03-11 22:35:16

标签: django

我正在使用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原则)。

谢谢, 马加什

2 个答案:

答案 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

注册后,用户将被重定向到包含登录表单的页面。