Django重组不能按预期工作

时间:2009-03-11 17:10:11

标签: django

我最近开始学习django。

我正在使用像city,

这样的citylist渲染我的模板
{'citylist': Cities.objects.all()}

并希望在模板中对国家/地区进行重新整理(与django-docs相同):

{% regroup citylist by country as coutrylist %}

<ul>
{% for country in countrylist %}
    <li>{{ country.grouper }}
    <ul>
        {% for c in country.list %}
        <li>{{ c.name }}</li>
        {% endfor %}
    </ul>
    </li>
{% endfor %}
</ul>

但是我得到了一些意想不到的结果,

France
  Strasbourg

Australia
  Penrith
  Sydney

US
  Larsen Bay

France
  Reims

US
  Avenal

我不认为我在模板中做错了什么。或者它的错误??

2 个答案:

答案 0 :(得分:9)

问题不在代码中,而在于您注入的数据。

将您的背景更改为

{'citylist': Cities.objects.all().order_by('country')}

django-docs提及

  

这个问题最简单的解决方法是在视图代码中确保数据按照您希望的方式进行排序。

答案 1 :(得分:2)

我还想指出另一个解决方案的文档。 http://docs.djangoproject.com/en/dev/ref/templates/builtins/#regroup

您可以在模板中对字典进行排序。

{%regroup citylist ** | dictsort:“country”**按国家/地区列为国家列表%}