替代{%ifrequest.user.is\u活动%}在Django模板中

2024-04-26 20:21:47 发布

您现在位置:Python中文网/ 问答频道 /正文

有哪些逻辑选择:

{% if request.user.is_active %}

如果视图没有返回带有request的字典的render_to_response,则模板无法正常工作。在

所以,任何想法都是受欢迎的。在

//已编辑

我的动机是:当你处理来自已安装应用程序的视图时,你没有机会修改它们。在


Tags: to视图模板应用程序编辑if字典is
2条回答

django.contrib.auth.context_processors.auth添加到settings.py中的TEMPLATE_CONTEXT_PROCESSORS。在

现在您的所有模板中都有user变量。所以你可以用这个:

{% if user.is_active %}

请参阅文档:template context processors in settingsauth context processor。在

在视图.py公司名称:

def foo_view(request):
    ...
    is_active = request.user.is_active
    return render_to_response('template.html', {'is_active':is_active})

或上下文处理器:

^{pr2}$

或中间件:

class IsUserActive:
    def process_template_response(self, request, response):
        response.context['is_active'] = request.user.is_active

在模板.html公司名称:

{% if is_active %}
    ...
{% endif %}

但是,我不知道为什么render-Tu-to-Tu的回答不能让你满意:

...
return render_to_response('template.html', 
    context_instance=RequestContext(request))

相关问题 更多 >