如何在django模板中重新组合?

时间:2015-06-26 13:14:10

标签: django html5 django-models django-templates django-views

我是Django的新手如何按日期创建列表?

示例:

-26 June 2015
    {{episodio.es}}
    {{episodio.es}}
    {{episodio.es}}
-27 June 2015
    {{episodio.es}}
    {{episodio.es}}

型号:

class Episodio(models.Model):
        es = models.ForeignKey(Tvserie)
        network_USA = models.CharField(max_length = 50, null=True, blank=True)
        ultimo_episodio_data_USA = models.DateTimeField(null=True, blank=True)
        ultimo_episodio_numero_USA = models.CharField(max_length = 11, null=True, blank=True)
        ultimo_episodio_nome_USA = models.CharField(max_length = 200, null=True, blank=True)
        prossimo_episodio_data_USA = models.DateTimeField(null=True, blank=True)
        prossimo_episodio_numero_USA = models.CharField(max_length = 11, null=True, blank=True)
        prossimo_episodio_nome_USA = models.CharField(max_length = 200, null=True, blank=True)

        class Meta:
                verbose_name_plural = "Episodi"

查看:

def calendarioengita(request):
    episodiusa = Episodio.objects.order_by('-prossimo_episodio_data_USA')
    return render_to_response('CalendarioEngIta.html',{'episodiusa':episodiusa})

模板:

{% regroup episodio by episodio.prossimo_episodio_data_USA|date:"d F Y" as prossimo_episodio_data_USA_list %}
<ul>
{% for prossimo_episodio_data_USA in prossimo_episodio_data_USA_list %}
<li>{{ prossimo_episodio_data_USA.grupper}}
    {% for item in prossimo_episodio_data_USA.list %}
        <span style="color: black">{{item.es}}</span><br>
    {% endfor %}
</li>
{% endfor%}
</ul>

为什么这是错的? 我使用了这份文件https://docs.djangoproject.com/en/1.4/ref/templates/builtins/#regroup

1 个答案:

答案 0 :(得分:0)

我认为您没有正确使用regroup标记。在by子句中进行分组后,应直接使用field item.field。试试这个:

{% regroup episodes by next_episode_date_USA|date:"d F Y" as next_episode_groups %}
<ul>
{% for next_episode_group in next_episode_groups %}
<li>{{ next_episode_group.grouper }}
    {% for episode in next_episode_group.list %}
        <span style="color: black">{{episode.es}}</span><br>
    {% endfor %}
</li>
{% endfor%}
</ul>