关于以下的逻辑替代方案是什么:
{% if request.user.is_active %}
如果视图没有返回render_to_response
带有 的字典request
,则模板无法正常工作。
所以,欢迎任何想法。
//已编辑
我的动机是:当您使用已安装应用程序的视图时,您没有机会修改它们。
关于以下的逻辑替代方案是什么:
{% if request.user.is_active %}
如果视图没有返回render_to_response
带有 的字典request
,则模板无法正常工作。
所以,欢迎任何想法。
//已编辑
我的动机是:当您使用已安装应用程序的视图时,您没有机会修改它们。
添加django.contrib.auth.context_processors.auth
到TEMPLATE_CONTEXT_PROCESSORS
您的settings.py
.
现在您user
的所有模板中都有变量。所以你可以使用这个:
{% if user.is_active %}
在文档中查看更多信息:设置中的模板上下文处理器,身份验证上下文处理器。
视图.py:
def foo_view(request):
...
is_active = request.user.is_active
return render_to_response('template.html', {'is_active':is_active})
或上下文处理器:
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
模板.html:
{% if is_active %}
...
{% endif %}
但是说真的,我不知道为什么 render_to_response 不能满足你:
...
return render_to_response('template.html',
context_instance=RequestContext(request))