【问题标题】:create lines by number of items django templates按项目数量创建行 django 模板
【发布时间】:2012-08-25 11:00:10
【问题描述】:

我想做的是:

创建一个

<div class="row-fluid center"> 

只从 list.dias.all 中最多放 3 个元素 我在思考这段代码时遇到了麻烦。

    <div class="row-fluid center" id="{{list.dias.all.count}}">
    {% for dia in list.dias.all %}  
            <div class="span4" id="element" >
                <div>
                    <h6 style="color: #9937d8">{{dia.tipo_dias.description}}</h6>
                    <small style="color: #b2e300">{{ dia.title_yt }}</small>

                </div>  
                <div id="another div"></div>
            </div>
    {% endfor %}    
    </div>

是一个新手问题,但我不知道使用 Django、django-templates 或 jQuery 是否更好。

提前致谢

-- 已编辑

谢谢!但我想迭代,为每三个元素创建一个新行。 我马上就要回答了。

如果列表有 30 个元素,则为每 3 个元素创建一行。不是前 3 个。

【问题讨论】:

    标签: jquery html css django django-templates


    【解决方案1】:

    就那样做吧:

    {% for dia in list.dias.all|slice:":3" %}  
    

    【讨论】:

    • 谢谢schacki,但我被误解了。我真正想要的是:如果一个列表有 30 个元素,则为每 3 个元素创建一行。不是第一个。但我现在更近了,谢谢你的帮助。
    【解决方案2】:

    “循环”模板标签也许可以做你想做的事。 https://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#cycle

    我不确定在您的示例中打开和关闭哪些 div,但想法是您使用循环标签在循环中每隔这么多次关闭和重新打开 div,除非它是最后一次迭代。

    <div class="row-fluid center" id="{{list.dias.all.count}}">
    {% for dia in list.dias.all %}  
        <div class="span4" id="element" >
            <div>
                <h6 style="color: #9937d8">{{dia.tipo_dias.description}}</h6>
                <small style="color: #b2e300">{{ dia.title_yt }}</small>
             </div>
        {% if forloop.revcounter > 1 %}{% cycle '' '' '</div><div>' %}{% endif %}
        </div>
    {% endfor %}    
    </div>
    

    【讨论】:

    • 对不起,这肯定不完全正确。就像我说的那样,我不确定哪个 div 是哪个。并且循环标签可能也不在正确的位置以使其正常工作。如果我能看到最终结果应该是什么样子,我也许可以改进这个答案。
    猜你喜欢
    • 2012-05-03
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    • 1970-01-01
    • 1970-01-01
    • 2017-02-02
    相关资源
    最近更新 更多