sách gpt4 ai đã đi

django - 使用 Django 评论获取 Django 中评论最多的帖子

In lại 作者:行者123 更新时间:2023-12-02 22:35:10 29 4
mua khóa gpt4 Nike

我想在我的 Django 应用程序中获取评论最多的十个帖子,但我做不到,因为我想不出合适的方法。

我目前正在使用 django 评论框架,并且我已经看到使用 aggregate or annotate 执行此操作的可能性。 ,但我知道怎么做。

事情会是:

  • 获取所有帖子
  • 计算每个帖子的评论数(我有一个 comment_count 方法)
  • 将帖子从评论最多的到评论最少的排序
  • 获取前 10 个(例如)

有什么“简单”或“pythonic”的方法可以做到这一点吗?我有点迷茫,因为评论框架只能通过模板标签访问,而不是直接从代码访问(除非你想修改它)

感谢任何帮助

1 Câu trả lời

您是对的,您需要使用注释和聚合功能。您需要做的是分组并获取 Comment 模型的 object_pk 的计数:

from django.contrib.comments.models import Comment
from django.db.models import Count

o_list = Comment.objects.values('object_pk').annotate(ocount=Count('object_pk'))

这会将如下内容分配给 o_list:

[{'object_pk': '123', 'ocount': 56},
{'object_pk': '321', 'ocount': 47},
...etc...]

然后您可以对列表进行排序并切分前 10 个:

top_ten_objects = sorted(o_list, key=lambda k: k['ocount'])[:10]

然后您可以使用 object_pk 中的值来检索附加评论的对象。

关于django - 使用 Django 评论获取 Django 中评论最多的帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11563215/

29 4 0
Bài viết được đề xuất: c# - ComboBox 与 ObservableCollection 绑定(bind)
Bài viết được đề xuất: .net - .NET 2.0 的 HTML 敏捷包
Bài viết được đề xuất: sql-server - Service Broker——如何从 XML 消息中提取行?
Bài viết được đề xuất: tfs - TFS 2010 中缺少 "Requirement"工作项类型
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com