cle*_*ula 1 python authentication django django-templates render-to-response
有哪些逻辑选择:
{% if request.user.is_active %}
Run Code Online (Sandbox Code Playgroud)
如果视图没有render_to_response带字典返回request,则模板无法正常工作.
所以,欢迎任何想法.
//编辑
我的动机是:当您处理已安装应用程序的视图时,您没有机会修改它们.
view.py:
def foo_view(request):
...
is_active = request.user.is_active
return render_to_response('template.html', {'is_active':is_active})
Run Code Online (Sandbox Code Playgroud)
或context_processor:
def is_user_active(request):
return {'is_active': request.user.is_active}
Run Code Online (Sandbox Code Playgroud)
或中间件:
class IsUserActive:
def process_template_response(self, request, response):
response.context['is_active'] = request.user.is_active
Run Code Online (Sandbox Code Playgroud)
template.html:
{% if is_active %}
...
{% endif %}
Run Code Online (Sandbox Code Playgroud)
但真诚地,我不知道为什么render_to_response不能满足你:
...
return render_to_response('template.html',
context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
添加django.contrib.auth.context_processors.auth到TEMPLATE_CONTEXT_PROCESSORS您的settings.py.
现在你的user所有模板中都有变量.所以你可以使用这个:
{% if user.is_active %}
Run Code Online (Sandbox Code Playgroud)
请参阅docs中的更多内容:设置中的模板上下文处理器,auth上下文处理器.
| 归档时间: |
|
| 查看次数: |
1017 次 |
| 最近记录: |