将分类列表划分为django模板中的部分

时间:2012-09-08 14:32:51

标签: python django

我有这个型号:

class Event_Category(models.Model):
    event=models.ForeignKey(Event,related_name='event_category')
    category=models.ForeignKey(Category,related_name='events')
    user=models.ForeignKey(User)

在视图中:

magazie_cats=Event_Category.objects.filter(event=instance).order_by('category').distinct()
return render_to_response('CompanyHub/Company/index.html', {'magazie_cats':magazie_cats},context_instance=RequestContext(request))

在模板中:

{% regroup magazie_cats by category as service_list %}

我想将这个分类列表分成3个部分并对其进行迭代。我试图通过变量索引访问每个类别:

    {% for i in range(0,3) %}
       {% for item in service_list.i.list %}
           {{item.event.title}}
       {% endfor %}
    {% endfor %}
    {% for i in range(3,6) %}
       {% for item in service_list.i.list %}
           {{item.event.title}}
       {% endfor %}
    {% endfor %}
    {% for i in range(6,9) %}
       {% for item in service_list.i.list %}
           {{item.event.title}}
       {% endfor %}
    {% endfor %}

注意:每个循环的范围由一些基于service_list长度的自定义过滤器计算。我没有包含完整的代码以避免复杂性。

问题是列表变量索引不起作用,我不知道该怎么做。

1 个答案:

答案 0 :(得分:1)

您想使用slice过滤器:

{% regroup magazie_cats by category as service_list %}

{% for cat in service_list|slice:":3" %}
    {% for item in cat.list %}
        {{item.event.title}}
    {% endfor %}
{% endfor %}
{% for cat in service_list|slice:"3:6" %}
    {% for item in cat.list %}
        {{item.event.title}}
    {% endfor %}
{% endfor %}
{% for cat in service_list|slice:"6:9" %}
    {% for item in cat.list %}
        {{item.event.title}}
    {% endfor %}
{% endfor %}