【问题标题】:django orm filter from other queryset来自其他查询集的 django orm 过滤器
【发布时间】:2016-04-22 07:50:40
【问题描述】:

我在我的迷你项目中遇到了问题。这是我的模型

class Post(models.Model):
    user = models.ForeignKey(User, related_name='poster_user', db_index=True)
    post_content = models.CharField(max_length=500, blank=True, null=True)
    post_date = models.DateTimeField(default=datetime_now)
    numberof_comment = models.BigIntegerField(default=0)
    is_deleted = models.BooleanField(default=False)

class Follower(models.Model):
    user = models.ForeignKey(User, related_name='user', db_index=True)
    isFriendToUser = models.ForeignKey(User, related_name='isFriendToUser', db_index=True)
    is_deleted = models.BooleanField(default=False)
    lastModifiedDate = models.DateTimeField(default=datetime_now)

当我有

followinguser = Follower.objects.all().filter(user=user, is_deleted=False)

并用它来

Post.objects.filter(user=followinguser.isFriendToUser, is_deleted=False)

它返回错误不能为“追随者”使用查询集:为“用户”使用查询集。 我想要这样的查询:

select * from Post 
where 
    user in (select isFriendToUser from Follower where user='someuserobject' and is_deleted = 0)
    AND
    is_deleted = 0

【问题讨论】:

  • 祝你调试愉快.
  • 错误:不能为“追随者”使用查询集:为“用户”使用查询集。
  • 你到底想做什么伙计?
  • @ozgur 我想要用户朋友的帖子

标签: django django-models


【解决方案1】:

如果我理解正确你想做什么:

Post.objects.filter(user__in=followinguser.values_list("isFriendToUser", flat=True), is_deleted=False)

【讨论】:

    猜你喜欢
    • 2016-10-26
    • 2010-11-30
    • 2010-10-14
    • 2016-09-11
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    • 2014-06-12
    相关资源
    最近更新 更多