我四处寻找,但没有找到像我这样的情况。假设使用 Django 的 User Profile 方法来扩展默认用户功能,多对象查询集将如何映射到相关对象的查询集。
例如(在模型中):
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
friends = models.ManyToManyField("self", symmetrical=True, blank=True)
在 View 中:
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)
请您参考如下方法:
return User.objects.filter(userprofile__in=profiles)
