当我使用 {%if request.user.is_authenticated%} 条件重定向此代码时,会抛出错误Invalid block tag: 'else'
{% if request.user.is_authenticated %}
{% extends "pages/page.html" %}
{% load mezzanine_tags shop_tags i18n %}
{% block body_id %}category{% endblock %}
{% block main %}{{ block.super }}
{% regroup products by category as products_by_category %}
{% for c in products_by_category %}
......
{% for p in c.list %}
......
{% if p.num_in_stock == None %}
...
{% else %}
{% if p.num_in_stock < 4 %}
...
{% endif %}
{% endif %}
.....
{% endfor %}
......
{% endfor %}
{% endblock %}
{% else %}
<script>
window.location="/stylequiz/";
</script>
如果我使用此脚本,那么它不会出现错误
{% if request.user.is_authenticated %}
<h1>welcome</h1>
{% else %}
<script>
window.location="/stylequiz/";
</script>
{% endif %}
我认为嵌套时必定存在问题。
答案 0 :(得分:2)
您无法将{%extends%}
标记放在{%if%}
中。它应该是模板中的第一个标记。
来自django docs Template inheritance
如果您在模板中使用{%extends%},则它必须是该模板中的第一个模板标记。否则,模板继承将不起作用。