django只在模板中的for循环中打印一个值

时间:2014-11-27 11:21:43

标签: python django loops templates

我想在模板中只显示for循环中的一个值。 假设我有这个:

{% for category in categories %}
    {{category.name}}
    <a href="{% url "my_url" category.id %}">See All</a>
{% endfor %}

如果我有5个类别,则在打印5次时看到全部。我怎么才能打印一次.. Thanx in adnvance ..

4 个答案:

答案 0 :(得分:1)

您应该有一个主页面,其中包含您要发送的所有类别context['categories']

如果您不需要详细说明类别之间的链接,请发送views.py中的当前类别:

context['category']

修改 如果你想做的只是在循环中打破你不能在django模板中但你可以使用slice

{% for category in categories|slice:":1" %}

它将完成循环一次

答案 1 :(得分:0)

您必须限制对象并将该对象发送到模板

tempalte_var['content'] = Categories.objects.all()[:5]

答案 2 :(得分:0)

不是最好的方法,但请检查:

{% for category in categories %}
    {% if categories|length > 1 %}
        <a href="{% url "my_url" category.id %}">See All</a>
    {% else %}
        {{categories[1].name}}
        <a href="{% url "my_url" category.id %}">{{category.name}}</a>
    {% endif %}
{% endfor %}

答案 3 :(得分:0)

此代码将打印Category

中的第一个元素
    {% for category in categories %}
        {% if categories | first %}  
            {{category.name}}
            <a href="{% url "my_url" category.id %}">See All</a>
        {% endif %}

    {% endfor %}