在django-registration 将 extra_context 传递给 Registration Form之后,我能够将额外的上下文发送到 django-registration 注册表,但不能发送到 django-registration 的其他页面,例如 registration_success 页面和 activation_complete 页面。
我想要做的就是将一个参数传递给这些 django-registration 中的每一个,以告诉它们如何显示。但是如何做到这一点对我来说似乎并不明确。
目前这是我的一部分urls.py
:
(r'^accounts/login/$', 'django.contrib.auth.views.login', { 'extra_context' : {'design_form': True }}),
(r'^accounts/register/complete/$', OneBoxView.as_view()),
(r'^accounts/register/$', MyRegistrationView.as_view(form_class=RegistrationForm)),
(r'^accounts/', include('registration.backends.default.urls')),
因此,例如,注册/完成页面使用基于 OneBoxView 分类的视图,如下所示:
class OneBoxView(TemplateView):
template_name = 'registration/registration_complete.html'
def get_context_data(self, **kwargs):
context = super(OneBoxView, self).get_context_data(**kwargs)
context.update({
'design_onebox': True,
})
但是这个视图函数只有一个模板,我找不到如何让各个 django-registration 页面将模板传递给类。设置基于类的视图意味着源代码 ( direct_to_template,
{'template': 'registration/registration_complete.html'},
) 无法工作。
我不想为每个 url 编写单独的视图函数,编写一个大的“if”函数或% self.kwargs['template']
获取页面名称似乎也不优雅。django-registration 的大多数页面必须有一些优雅的方式来简单地传递一个“design_onebox”参数?