0

我有这个模型:

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 length 的自定义过滤器计算的。我没有包含完整的代码以避免复杂性。

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

4

1 回答 1

1

您想使用切片过滤器:

{% 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 %}
于 2012-09-08T14:39:32.300 回答