python 缩进在django中很重要吗?

oipij1gg  于 2023-03-11  发布在  Python
关注(0)|答案(2)|浏览(130)

模板文件:

{% if object.name== '' %}
    {% block name %}{{ object.name}}{% endblock name %}
       {% else %}
            {% block name %} {{ object.alternate_name}} 
            {% endblock name %}
           {% endif %}

我在Django中有这段代码,由于某种原因,我得到了块名重复两次的错误,这似乎是不可能的,因为它们在if-else语句中。然而,我意识到我的缩进看起来像上面的一样。我不确定是什么导致了这个错误。

mtb9vblg

mtb9vblg1#

不能使块成为条件块:这些是直接位于{% extends %}级别的节点。您可以将条件移动到块中:

{% block name %}
  {% if object.name == '' %}
    {{ object.name}}
  {% else %}
    {{ object.alternate_name}} 
  {% endif %}
{% endblock name %}

也就是说,条件应该反过来。你也可以使用**{% firstof … %}**[Django-doc]:

{% block name %}
    {% firstof object.name object.alternate_name %}
{% endblock name %}
wwodge7n

wwodge7n2#

若要解决此问题,可以删除重复的块定义,并将if-else语句的内容移动到单个块定义中。
试试这个:

{% block name %}
    {% if object.name == '' %}
        {{ object.name }}
    {% else %}
        {{ object.alternate_name }}
    {% endif %}
{% endblock name %}

相关问题