Python django中单独的成员和来宾模板内容
我正在试图找出什么是最好的方式来混合成员和来宾模板。 主要区别在于页面的菜单。在我使用过的一些语言中,您可以在模板中添加前缀,以便将整个模板切换到其他版本。 前任: base.guest.html base.member.html 在Django中,我看到的与此相关的唯一方式是我在文档中找到的代码:Python django中单独的成员和来宾模板内容,python,django,django-templates,Python,Django,Django Templates,我正在试图找出什么是最好的方式来混合成员和来宾模板。 主要区别在于页面的菜单。在我使用过的一些语言中,您可以在模板中添加前缀,以便将整个模板切换到其他版本。 前任: base.guest.html base.member.html 在Django中,我看到的与此相关的唯一方式是我在文档中找到的代码: if request.user.is_authenticated(): # Do something for authenticated users. else: # Do some
if request.user.is_authenticated():
# Do something for authenticated users.
else:
# Do something for anonymous users.
这是Django的基本方法吗?或者我还缺少什么
对于我的大多数页面来说,这可以解决问题,但不确定是否有更好的方法根据身份验证状态切换内容。在这种情况下,您不
扩展
,而是包含
。base.html
应该与身份验证无关
{% if user.is_authenticated %}
{% include 'member.html' %}
{% else %}
{% include 'guest.html' %}
{% endif %}
如果愿意,也可以在视图中使用If语句,并将要包含的模板的名称传递给主模板。有关更多信息,请参见如果else被重复到多个视图中,您可以创建一个自定义中间件,以查看如果您使用
RequestContext
呈现模板中的user
变量,用户是否已登录。然后您可以使用{%if user.is_authenticated%}
并在模板中编写适当的html。是的,我知道{%if user.is_authenticated%}选项。但我想我是在寻找一种方法来完成{%extends“base.html”%},并让它根据经过身份验证的状态自动包含一个版本