2

我刚刚切换到使用 django-registration 来管理我网站上的用户身份验证。以前,我在注册和登录页面使用视图,因此能够指定上下文参数。但是现在,我不再拥有这些页面的视图,因为 django-registration 会为我处理这些。我仍然需要传递上下文变量,所以我试过这个:

网址.py:

import registration
from registration.backends.default.views import RegistrationView
...
(r'^accounts/login/$', 'django.contrib.auth.views.login', { 'extra_context' : {'design_form': True }}),
(r'^accounts/register/$', RegistrationView.as_view(form_class=RegistrationForm), { 'extra_context' : {'design_form': True }}),
(r'^accounts/', include('registration.backends.default.urls')),

'design_form' 参数在帐户/登录/页面上正常运行,但未传递到注册页面。如何将 extra_context 传递到我的注册页面?

使用 django 1.5 和 django-registration 1.0

4

1 回答 1

4

由于 RegistrationForm 是django.views.generic.FormView和 的后代django.generic.views.View,因此传递extra_content是通过覆盖get_context_data完成的,包括示例。

基于函数的通用视图提供了一个extra_context参数作为在渲染时将额外项目插入上下文的方式。

基于类的视图不提供 extra_context 参数。相反,您将视图子类化,覆盖get_context_data().

于 2013-11-08T16:50:55.657 回答