django中的单独成员和访客模板内容

时间:2014-01-15 02:59:45

标签: python django django-templates

我正在试图弄清楚混合成员和访客模板的最佳方法是什么。 主要区别在于页面的菜单。在我使用过的一些语言中,您可以为模板添加前缀,以便为其他版本切换出整个模板。 例如: base.guest.html base.member.html

在Django中,我看到与此相关的任何事情的唯一方法是我在文档中找到的代码:

if request.user.is_authenticated():
    # Do something for authenticated users.
else:
    # Do something for anonymous users.

这是在Django中执行此操作的基本方法吗?或者还有其他我不想要的东西。

对于我的大多数网页来说,这样做可以,但不确定是否有更好的方法可以根据经过身份验证的状态切换内容。

1 个答案:

答案 0 :(得分:1)

在这种情况下,您不是extend,而是includebase.html应该与身份验证无关。

{% if user.is_authenticated %}
    {% include 'member.html' %}
{% else %}
    {% include 'guest.html' %}
{% endif %}

如果您愿意,您也可以在视图中使用if语句,并将要包含的模板的名称传递给主模板。有关详细信息,请参阅https://docs.djangoproject.com/en/dev/ref/templates/builtins/#include