2016-04-22 69 views
0

我在我的迷你项目上遇到问题。这是我的模型从其他查询集的Django orm过滤器

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) 

它返回错误无法使用查询集的 “跟随者”:使用一个QuerySet为 “用户” 。 我想有这样的查询:

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

那么有乐趣调试它,如果你需要帮助问*描述*的问题,解释错误是什么,以及您尝试解决问题的方法以及所进行的研究。 – Sayse

+0

错误:无法将“QuerySet”用于“追随者”:对“用户”使用QuerySet。 – Mahyar

+0

你到底想干什么? – ozgur

回答

2

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

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

这正是我所需要的。非常感谢 – Mahyar