gpt4 book ai didi

python - 在 Django/Python 中按查询集计数排序列表

转载 作者:行者123 更新时间:2023-11-28 23:06:21 26 4
gpt4 key购买 nike

抱歉,这是基本的,但我是 Python 和 Django 的新手。

我有一个已执行操作的用户列表,该列表保存在单独的表中。我想显示这些用户的列表,按他们执行其他操作的次数排序。

我了解如何获取计数:

users = User.objects.all()
for user in users:
print user.action_set.count()

而且我了解如何在我的模板中显示计数:

{% for user in users %}
{{ user.action_set.count }}
{% endfor %}

但我不确定如何让它根据操作集的数量对用户进行排序。

最佳答案

注释/聚合 http://docs.djangoproject.com/en/dev/topics/db/aggregation/

from django.db.models import Count
users = User.objects.annotate(action_count=Count('action')).order_by('action_count')
# note that this also saves your extra query PER user object.

{% for user in users %}
{{ user.action_count }}
{% endfor %}

为了将来引用,如果您不能按数据库排序,您可以用 Python 对任何列表进行排序...

my_list.sort(key=lambda x: x[2])

my_list.sort(key=lambda x: x.method())

非常有用。

关于python - 在 Django/Python 中按查询集计数排序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5130836/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com