Django 尝试根据另一个表中的值进行筛选
我有两张桌子Django 尝试根据另一个表中的值进行筛选,django,Django,我有两张桌子 class ItemFollowers(models.Model): item = models.ForeignKey(Items, models.DO_NOTHING, db_column='item') user = models.ForeignKey(AuthUser, models.DO_NOTHING, db_column='user') 另一个是 class UsrPosts(models.Model): item = models.Forei
class ItemFollowers(models.Model):
item = models.ForeignKey(Items, models.DO_NOTHING, db_column='item')
user = models.ForeignKey(AuthUser, models.DO_NOTHING, db_column='user')
另一个是
class UsrPosts(models.Model):
item = models.ForeignKey('Items', models.DO_NOTHING, db_column='item')
# Some other fields
如何选择与项目相关的UsrPosts
,然后选择一些用户
?i、 e.我可以在ItemFollowers
中有记录,比如(item0,user0),(item1,user0),(item5,user0)。我需要根据用户筛选UsrPosts
(也称为request.user.id
)
这里是一种低效的非工作方式来获取UsrPostts
itms = ItemFollowers.objects.filter(user_id=request.user.id)
qry = Q(item_id=itms[0].item.id) | ..... | Q(item_id=itms[N].item.id)
posts = UsrPosts.objects.filter(qry)
是否有一些过滤魔法可以在一次交易中获得它?非常感谢!第一行中只有一点小错误。它应该是ItemFollowers.objects.filter(user\u id=request.user.id)。value\u list('item')
。如果在一次交易中没有更好的答案,我会将此作为可接受的答案。万分感谢!好的,使用django_debug_工具栏,看起来运行这两行实际上需要一个查询。再次感谢!
itms = ItemFollowers.objects.filter(user_id=request.user.id).values_list('item')
posts = UsrPosts.objects.filter(item__in = itms)