[英]How to pass context defined in setting TEMPLATE_CONTEXT_PROCESSORS to my custom views
我在使用Django Social Auth时遇到了这个问题。 我有这个模板。
{% block content %}
<div id="content-main">
<ul>
{% for name in social_auth.backends %}
<li>
<a rel="nofollow" href="{% url "socialauth_begin" name %}">{{ name|title }}</a>
</li>
{% endfor %}
</ul>
</div>
{% endblock %}
如果我使用标准urlpattern(它是登录页面),它会正确呈现
url(r'^accounts/login/$', 'django.contrib.auth.views.login'),
但是,如果我使用自定义视图,如何传递TEMPLATE_CONTEXT_PROCESSORS
定义的上下文?
这是我的视图和settings.py
文件中的条目
def login(request):
t = loader.get_template('registration/login.html')
c = Context( {} )
return HttpResponse(t.render(c))
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'social_auth.context_processors.social_auth_by_name_backends',
'social_auth.context_processors.social_auth_backends',
'social_auth.context_processors.social_auth_login_redirect',
)
有意义的是,在我看来context
是空的,我传递一个空对象,我该怎么做才能传递正确的context
?
您需要使用RequestContext
呈现模板并返回响应。 通常这样做:
def someview(request):
context = { }
return render_to_response('some_template.html', context,
context_instance = RequestContext(request))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.