在django doc中提到自1.11以来不推荐使用{%include%}。由于我是django的新手,有什么选择?想象一下,如果您是否经过身份验证,您的页面标题会有所不同。我不想在header.html模板中同时拥有这两种布局......
答案 0 :(得分:7)
{% include %}
未被弃用
呈现包含模板时引发的任何异常现在都会被提升而不是被静音
自1.11版以来已弃用: 不建议使用在呈现{%include%}模板标记时引发的异常。在Django 2.1中, 将引发异常
答案 1 :(得分:1)
完成你想要的东西我会建议:
{% if user.is_authenticated %}
<li><a href="{% url 'myprofile' %}"> My Profile</a></li>
{% else %}
<li><a href="{% url 'login' %}">Login</a></li>
<li><a href="{% url 'register' %}">Register</a></li>
<li><a class="fa fa-cog" href="{% url 'settings' %}" target="_blank"> Settings</a></li>
{% endif %}
因此,您的header.html / base.html将知道用户是否已登录并切换标头的属性。
希望有所帮助:)