django加入多对多关系

时间:2018-02-25 18:05:06

标签: python django join

我已经看过类似问题的多个答案,关于如何通过django模型与多对多关系进行联接,但似乎没有任何关系,有人可以帮忙。

用户 - >你的普通django用户模型

class Upload(models.Model):
   file = models.FileField(storage=FileSystemStorage(location='./xyz/xyz/'))
   timestamp = models.DateTimeField(auto_now_add=True, blank=True)
   owner = models.ForeignKey(User, on_delete=models.CASCADE)

class FollowerRelationship(models.Model):
   followed_content_creator = models.ForeignKey(User, on_delete=models.CASCADE, related_name='followed_fk')
   following_content_creator = models.ForeignKey(User, on_delete=models.CASCADE, related_name='following_fk')

现在我想从给定用户的关注者中选择所有上传,如果不多次访问存储系统,我怎么能这样做呢?

非常感谢

1 个答案:

答案 0 :(得分:0)

user = User.objects.get(username='user')

follower = user.followerRelationship_set.all() 

Upload.objects.all().filter(owner__in=follower.values('following_content_creator'))

如果用户跟随上传所有者,这应该为给定用户提供所有上传对象,希望它有所帮助。