我最近开始学习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
我不认为我在模板中做错了什么。或者它的错误??
答案 0 :(得分:9)
问题不在代码中,而在于您注入的数据。
将您的背景更改为
{'citylist': Cities.objects.all().order_by('country')}
这个问题最简单的解决方法是在视图代码中确保数据按照您希望的方式进行排序。
答案 1 :(得分:2)
我还想指出另一个解决方案的文档。 http://docs.djangoproject.com/en/dev/ref/templates/builtins/#regroup
您可以在模板中对字典进行排序。
{%regroup citylist ** | dictsort:“country”**按国家/地区列为国家列表%}