什么是对逻辑的替代品:替代{%如果request.user.is_active%} Django的模板
{% if request.user.is_active %}
如果视图不带字典,request
返回render_to_response
,模板没有按” t正常工作。
所以,任何想法都是值得欢迎的。
//编辑
我的动机是:当你从安装的应用程序视图的工作,你不必修改它们的机会。
什么是对逻辑的替代品:替代{%如果request.user.is_active%} Django的模板
{% if request.user.is_active %}
如果视图不带字典,request
返回render_to_response
,模板没有按” t正常工作。
所以,任何想法都是值得欢迎的。
//编辑
我的动机是:当你从安装的应用程序视图的工作,你不必修改它们的机会。
添加django.contrib.auth.context_processors.auth
到TEMPLATE_CONTEXT_PROCESSORS
在settings.py
。
现在您的所有模板中都有user
变量。所以,你可以使用这个:
{% if user.is_active %}
查看更多在docs:template context processors in settings,auth context processor。
view.py:
def foo_view(request):
...
is_active = request.user.is_active
return render_to_response('template.html', {'is_active':is_active})
或context_processor:
def is_user_active(request):
return {'is_active': request.user.is_active}
或中间件:
class IsUserActive:
def process_template_response(self, request, response):
response.context['is_active'] = request.user.is_active
template.html:
{% if is_active %}
...
{% endif %}
但真诚的,我不知道为什么选择render_to_response不能满足你:
...
return render_to_response('template.html',
context_instance=RequestContext(request))
当您从安装的应用程序使用一些无法修改的视图时,例如:userena应用程序,登录,注销视图。 – cleliodpaula
'auth'是默认包含的,也可以使用'request'上下文处理器,它默认不包含。此外,它更好地注意到RequestContext是用法所必需的。 – okm