第3行的块标记无效:'否则'。您是否忘记注册或加载此代码?

时间:2018-03-11 07:25:00

标签: django django-templates jinja2

我有我的主要主页模板,我想扩展两组标题中的一组,但是我收到的错误似乎表明else在此语句中不起作用。当用户没有登录并且elif显示为undefined时,我也尝试更改为elif。这些是文件中的第一行代码,因此在这些代码之前也没有加载其他东西。问题代码:

{% if user.is_authenticated %}
    {% extends "main/header.html" %}
{% else %}
    {% extends "landing/header.html" %}
{% endif %}

是否不允许有条件地添加延伸?如果是这样,有正确的方法吗?

2 个答案:

答案 0 :(得分:1)

includeextends的工作方式不同。

有条件使用extends的一种方法是使用内置过滤器yesno

{% extends request.user.is_authenticated|yesno:'main/header.html,landing/header.html' %}

答案 1 :(得分:0)

在这种情况下你可以使用include

{% if user.is_authenticated %}
    {% include "main/header.html" %}
{% else %}
    {% include "landing/header.html" %}
{% endif %}