python - 如何使用 Django 循环标签

标签 python django django-templates django-views django-template-filters

希望这是一个非常简单的问题。我的最终目标是能够在一个表中查看我的数据库条目,我可以通过列标题对其进行排序。我读过 documentation在循环标签上,但不知道它们是 'row1''row2' 的意思:

{% for o in some_list %}
    <tr class="{% cycle 'row1' 'row2' %}">
        ...
    </tr>
{% endfor %}

其次,我如何将它正确地实现到我的模板中?我使用的是一个非常简单的 JS library ,这将允许排序:

页面.html

{% if Variable %}
    <table class="sortable">
        <tr>
            <th>Title 1</th>
            <th>Title 2</th>
            <th>Title 3</th>
            <th>Title 4</th>
            <th>Title 5</th>
        </tr>
    {% for stuff in Variable %}

        <tr class="{% cycle 'stuff' %}">    
            <td>
                <a href="{% url 'detail_page' stuff.id %}">
                {{ stuff.Name|capfirst }}</a>
            </td>
        </tr>
    {% endfor %}
    </table>
{% else %}
    <p>No Results Found</p>
{% endif %}

我的 models.py 以备不时之需:

def view(request):
    Variable = database.objects.all()
    context = {
        'Variable': Variable,
    }
    return render(request, 'app/page.html', context)

编辑: 似乎我一直都有正确的代码,只是一些应用不均匀的 CSS 使我的表格看起来不像表格。不需要循环标记,只需要 for 循环。添加另一个表格行后看起来也更好:

{% for stuff in Variable %}
<tr>
    <td>{{ stuff.Name|capfirst }}</td>
    <td>{{ stuff.Number|capfirst }}</td>
</tr>
{% endfor %}

最佳答案

对于循环标签,这两个参数将交替添加到模板中,例如,您的模板 {% for o in some_list %}<tr class="{% cycle 'row1' 'row2' %}"></tr>{% endfor %} 中的代码将生成:

<tr class="row1">
    ...
</tr>
<tr class="row2">
    ...
</tr>
<tr class="row1">
    ...
</tr>
<tr class="row2">
    ...
</tr>
<!-- ... and so on while there are elements in some_list -->

等等。通常你会附加一些CSS,例如:

<style>
   .row1 {
      background: #345678;
   }
   .row2 {
      background: #123456;
   }
</style>

例如,这将为交替行提供不同的背景颜色。

关于python - 如何使用 Django 循环标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36138669/

相关文章:

python - Redis 缓存不适用于 Django

django - null=True,blank=True 但在发布期间每次都会引发错误 may not be null

django - 在 Django 中保存外键相关表单

django - Django 的 Views.py 中选择选项的值

python - 在 Mac 上使用 macports python (python27) 安装 pyserial 时遇到问题

python - 如何在不使用 `plot3d_parametric_line` 的情况下绘制参数曲线

python - 关注 Google 结果的前 5 页 Python Mechanize

在 Heroku 上安装 Buildpack 后出现 Python ImportError

python 请求返回类似文件的对象以进行流式传输

python - 在 Django 模板中隐藏重复迭代