我正在尝试重组一个字段并在Django中对另一个字段进行排序。我的用例不同,但我们以Django重组模板为例。
使用此数据集。
cities = [
{'name': 'Mumbai', 'population': '19,000,000', 'country': 'India'},
{'name': 'Calcutta', 'population': '15,000,000', 'country': 'India'},
{'name': 'New York', 'population': '20,000,000', 'country': 'USA'},
{'name': 'Chicago', 'population': '7,000,000', 'country': 'USA'},
{'name': 'Tokyo', 'population': '33,000,000', 'country': 'Japan'},
]
使用regroup标签,这是输出:
我如何按人口对这些信息进行排序,但仍保留分组?这是我希望看到的预期输出:
如何查询数据库以保持Django模板中重新排序所需的分组正常工作但仍保持人口的排序顺序?如何在日期对象而不是int?
上工作答案 0 :(得分:1)
请注意{%regroup%}不会对其输入进行排序!我们的例子依赖于城市名单首先按国家排序的事实。如果城市列表没有按国家/地区对其成员进行排序,则重新组合将天真地为一个国家/地区显示多个组。
在您的查询集中定义它:
def get_queryset(self):
qs = self.model.objects.all()
qs = qs.order_by('population', '-country')
return qs