Django QuerySet选择相关对象

时间:2017-02-10 03:39:39

标签: python django django-rest-framework

我已经四处寻找,但没有发现像我这样的情况。假设使用Django的用户配置文件方法来扩展默认用户功能,多对象查询集如何映射到相关对象的查询集。

例如(在模型中):

class UserProfile(models.Model):
     user = models.OneToOneField(User, on_delete=models.CASCADE)

     friends = models.ManyToManyField("self", symmetrical=True, blank=True)

在视图中:

class Friends(generics.ListAPIView):

    queryset=User.objects.all()
    serializer_class = UserSerializer

    def get_queryset(self):
        user = self.request.user
        profile = user.userprofile
        profiles = profile.friends.all()
        return profiles  #We want this to be a queryset of users

我尝试了以下操作,但这只适用于profiles大小为1的情况。

return User.objects.filter(userprofile=profiles)

1 个答案:

答案 0 :(得分:2)

 return User.objects.filter(userprofile__in=profiles)