嵌套if的问题?

时间:2012-12-13 06:00:45

标签: python django templates if-statement nested-if

  

可能重复:
  Django templates syntax error

当我使用 {%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 %}

我认为嵌套时必定存在问题。

1 个答案:

答案 0 :(得分:2)

您无法将{%extends%}标记放在{%if%}中。它应该是模板中的第一个标记。

来自django docs Template inheritance

如果您在模板中使用{%extends%},则它必须是该模板中的第一个模板标记。否则,模板继承将不起作用。