python – 具有挑战性的django查询集构造

python – 具有挑战性的django查询集构造,第1张

概述我有一个Django应用程序,用户登录,设置各种主题,然后在所述主题下留下评论.以下模型反映了这个基本设置: class Topic(models.Model): topic_text = models.TextField() submitted_on = models.DateTimeField(auto_now_add=True)class Comment(models.M @H_502_0@ @H_502_0@ 我有一个Django应用程序,用户登录,设置各种主题,然后在所述主题下留下评论.以下模型反映了这个基本设置:

class topic(models.Model):    topic_text = models.TextFIEld()    submitted_on = models.DateTimeFIEld(auto_Now_add=True)class Comment(models.Model):    comment_text = models.TextFIEld()    which_topic = models.ForeignKey(topic)    submitted_by = models.ForeignKey(User)    submitted_on = models.DateTimeFIEld(auto_Now_add=True)

对于每个用户,我试图获得用户编写的最新5条评论中的任何一条的所有主题.换句话说,如果用户未在主题的最新5条评论中进行评论,则该主题将从查询集中排除.

那么我该如何构建这个查询集呢?顺便说一下,我会向你展示我尝试过的东西,但这是非常不合适而且显然是错误的.有人可以帮忙吗?

解决方法 我没有测试它,但子查询应该工作.像这样的东西:

    

topic.objects.filter(    comment__submitted_by__in=Comment.objects.values(        'submitted_by'    ).order_by(        '-submitted_on'    ).limit(5),submitted_by=user)

(如果您打算访问评论,请添加.prefetch_related(‘comment_set’).)

@H_502_0@ 总结

以上是内存溢出为你收集整理的python – 具有挑战性的django查询集构造全部内容,希望文章能够帮你解决python – 具有挑战性的django查询集构造所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1197514.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存