什麼是對邏輯的替代品:替代{%如果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