python - Django {% if forloop.first %} 问题

标签 python django

我的模板中有以下代码:

{% for object in object_list %}
{% with game=object.game %}

{% for category in object.game.objectmeta.categories.all %}
{% if category.name|title == 'Puzzle' %}

{% if forloop.first %}
    <div class='side_header' id='dark_gamelink_side'>
        <a class='actionheader' href=""></a>
    </div>
{% endif %}

<div class='game_link' id='dark_gamelink'>
    <a class='img_link' href="{% url game_view game.id game.title|slugify %}">
        <img class='game_img' src='{{game|thumb:"78x65"}}' alt='{{game.title}}' />
    </a>
    <div class='top_game_title' style='padding:0'>
        <a style='position:relative; top:-3px' id='yellowlink' href="{% url game_view game.id game.title|slugify %}">{{game.title}} -- {{category.name|title}}</a>
        <img style='position:relative; top:1px; margin-left:12px' src='thumbsup.gif' width='17' height='18'/>
        <span style='position:relative; top:-3px; font-size:10px; color:white'>99%</span>
    </div>
    {% if game.description|length > 65 %} 
        {{ game.description|slice:"65" }}...
    {% else %}    
        {{ game.description }}
    {% endif %}
</div>

{% if forloop.counter0 == 3 %}
    <div class='more_games'><br/></div><div class='side_header' id='dark_gamelink_side'><a class='adventureheader' href=adventure.htm></a></div>
{% endif %}


{% endif %} 
{%endfor%}

{% endwith %}
{% endfor %}

现在我正在使用这个:

{% if forloop.first %}
    <div class='side_header' id='dark_gamelink_side'>
        <a class='actionheader' href=""></a>
    </div>
{% endif %}

尝试检测这是否是紧接在它之前的 for 循环的第一次迭代,而不是父 forloop。换句话说,我试图检测它是否是这个 for 循环的第一次迭代:

{% for category in object.game.objectmeta.categories.all %}

不是这个:

{% for object in object_list %}

现在的方式不起作用,因为它显示的是:

<div class='side_header' id='dark_gamelink_side'>
    <a class='actionheader' href=""></a>
</div>

两次。如何检测嵌套forloop的第一次迭代?

最佳答案

编辑:

我从未使用过这些变量,但我认为 forloop.parentloop.first 应该这样做。如果不是怪我误解了Django docs . ;-)

您应该检查您是否在父循环内,然后在第一个嵌套节点内。请试试这个修改后的模板。它应该给你正确的方向。

{% if forloop.parentloop.first %}     
   I am in the first loop of the parent
{% else %}
{% if forloop.first %}  
    <div class='side_header' id='dark_gamelink_side'>
        <a class='actionheader' href=""></a>
    </div>
{% endif %}
{% endif %}

关于python - Django {% if forloop.first %} 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6170259/

相关文章:

python - 如何使用 django 的 ORM 进行两个连接

python - numpy.all 与对象数据类型的奇怪行为

python - 将 wxPython 小部件字体设置为外部字体文件

Python:是否可以混合生成器和递归函数?

python - 将特定坐标增加到 numpy 数组

Django Rest Framework - 如何从相关模型集中只获取一个字段

python - 一个更快的嵌套元组列表和返回

django - 在 Django 模板中导入 Web 组件的推荐方法?

django - SQLite 数据库推送到 EC2 服务器时出现问题

python - 在 Django 中处理多个表行的表单(或 Formset?)