首页 > 解决方案 > 如何使用 django 的 orm 获取额外数据?

问题描述

返回查询结果时如何获取额外数据,我想知道当前登录的用户是否喜欢该帖子,我认为解决方案是这样的:

        return Post.objects.all().annotate(like_count=Count('likers'), liked=(len(Like.objects.filter(user=info.context.user, post=Post)) > 0)).order_by('-like_count')

但我无法让它工作

帖子模型:

class Post(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, 
        related_name="posts")
   title = models.CharField(max_length=200)
   text = models.CharField(max_length=1000)
   commentCount = models.IntegerField(default=0)
   creation = models.DateTimeField(auto_now_add=True)

类似型号:

class Like(models.Model):
   user = models.ForeignKey(User, on_delete=models.CASCADE, 
      related_name="like") 
   post = models.ForeignKey(Post, on_delete=models.CASCADE, 
      related_name="likers")

标签: pythondjangodjango-modelsormbackend

解决方案


推荐阅读