【发布时间】:2015-05-21 17:26:47
【问题描述】:
我对这些模型有疑问:
class Post(models.Model):
#Some fields ....
class LikePost(models.Model):
# Author info
author = models.ForeignKey(User,related_name='post_likes')
post = models.ForeignKey(Post, related_name="likes")
dateJoined = models.DateTimeField(auto_now_add=True)
当我检索帖子的信息时,我还需要知道当前用户 (request.user) 是否已经对当前帖子进行了likeAction。
当我获取帖子的详细信息时,我会使用单个查询来有效地(如果可能的话)。
目前我使用这个查询:
Post.objects.annotate(likes_count=Count('likes')).get(pk=pk)
我使用.annotate() 来检索点赞数...
我可以添加一些关于.annotate() 或.extra() 的内容,以了解用户是否已经对当前帖子进行了likeAction?
【问题讨论】:
-
是的,你可以。只需使用
select_related、.annotate或.extra。 -
好的,谢谢...但是可以为这个模型添加一个代码示例吗?
标签: python django django-orm