我已经四处寻找,但没有发现像我这样的情况。假设使用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)
答案 0 :(得分:2)
return User.objects.filter(userprofile__in=profiles)