django - 将一个查询集渲染为 2 个 div 列(django 模板)

标签 django django-templates 960.gs

是否有一种好方法将查询集的枚举呈现为两个 div 列?

使用 960 网格,我得到了一些效果......

<div class="container_16">
    <div class="grid_8 alpha"></div>
    <div class="grid_8 omega"></div>
</div>

在 Django 中,一个模型需要在这两列中呈现其枚举内容,并且最好是同等呈现。目前,我有一些丑陋的代码,在 View 中将 QuerySet 分成两半,然后每一半都呈现在各自的列中。

一定有更好的方法来做到这一点,最好只使用模板渲染系统?

仅供引用,目前它的“工作原理”如下:

views.py
@render_to('template.html')
def main_athletics_page(request, *args, **kwargs):    
    sports = Sport.objects.all()
    half = sports.count() / 2
    return { 'sports_1' : sports[0:half], 'sports_2' : sports[half:] }

模板.html

<div class="grid_8 alpha">
    {% for sport in sports_1 %}
        <!-- Blah blah -->
    {% endfor %}
</div>

<div class="grid_8 omega">
    {% for sport in sports_2 %}
        <!-- Blah blah -->
    {% endfor %}
</div>

最佳答案

我建议使用Django filters .

Django 片段提供了 partitioning template filter ,您可以这样使用:

{% load listutil %}

<div class="grid_8 alpha">
    {% for sport in sports|partition:"2"|first %}
        <!-- Blah Blah -->
    {% endfor %}
</div>

<div class="grid_8 omega">
    {% for sport in sports|partition:"2"|last %}
        <!-- Blah Blah -->
    {% endfor %}
</div>

关于django - 将一个查询集渲染为 2 个 div 列(django 模板),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1610178/

相关文章:

css - 如何在网格系统的排水沟中放置一个 block ?

python - 表单中变量列/字段名称的独特 python/django 问题

twitter - 我不明白 twitter bootstrap span 和 row

python - Django,形式 is_valid() 始终为 false

django - 我想在 django 模板中使用变量,我该如何使用它.//

python - Django 模板扩展和 CSS

python - NoReverseMatch 错误,尝试在 Django 中设置详细页面 View

html - 网格 960 : how to change width, 填充和边距?

python - 在 Django 中发送群发邮件——太多的值无法解压

celery任务和我的模​​型之间的Django导入循环