是否可以返回仅为每个外键返回一个对象的查询集?例如,我想要从django_comments获取最新评论,但我只希望每个对象有一条评论(最新评论),即只返回对象的最新评论,并排除所有过去的评论。目的。我想这应该类似于django_comments.content_type和django_comments.object_pk上的sql group_by。Django:为每个外键返回一个过滤对象
++ ADDED INFO ++
的最终目标是创建显示活动评论“线程” /由线程最近的评论,就像你的标准的讨论板,其主题近期上市有序列表活动。
我想最好的办法是抓住最新的评论,然后按内容类型和object_pk对它们进行排序或分组,以便每个相关内容对象只返回一个评论(最新)。然后,我可以使用该评论来获取我需要的所有信息,因此单词线程的使用松散,因为我只是抓住评论并跟随它的PK。
MODEL是django_threadedcomments,它扩展了django_comments,为树,子和父母添加了一些字段。
VIEW:
...这将返回包括家长
comments = ThreadedComment.objects.all().exclude(is_public='0').order_by("-submit_date")
的所有实例的所有评论...这是理想的
comments = ThreadedComment.objects.all().exclude(is_public='0').order_by("submit_date").[plus sorting logic to exclude multiple instances of the same object_pk and content_type]
模板:
{% for comment in comments %}
TITLE: {{comment.content_object.title}}
STARTED BY : {{comment.content_object.user}}
MOST RECENT REPLY : {{comment.user}} on {{comment.submit_date}}
{% endfor %}
再次感谢!
基本上,你想要一个SQL'LIMIT 1'('[0]'一个Django的查询),但是你想要的每线程?你能告诉我们你的“得到所有评论”Django查询的样子,所以我们可以告诉你如何改变它? – 2010-06-20 18:08:53
我已更新我的问题,谢谢! – jnh 2010-06-20 19:08:18
使用不同。看看这个答案http://stackoverflow.com/a/14293530/632182 – Christoffer 2016-04-08 13:41:19