将上下文从Viewset传递到序列化程序



我有带有get_serializer_context方法的Viewset

class UserRetrieveView(generics.RetrieveAPIView):
queryset = User.objects.all()
permission_classes = (AllowAny,)
serializer_class = UserProfilePageSerializer
def get_serializer_context(self):
context = super(UserRetrieveView, self).get_serializer_context()
context.update({'room' : self.get_object().room_set.all()})
print(context['room'])
return context

现在我想把这个上下文放到我的序列化程序中:

class UserProfilePageSerializer(ModelSerializer):
class Meta:
model = User
fields = ['id', 'username', 'name','bio']

老实说,我不知道该怎么做。我真的很感激任何帮助,甚至一些线索

class UserRetrieveView(generics.RetrieveAPIView):
queryset = User.objects.all()
permission_classes = (AllowAny,)
serializer_class = UserProfilePageSerializer
def get_serializer_context(self):
context = super(UserRetrieveView, self).get_serializer_context()
context.update({'room' : self.get_object().room_set.all()})
print(context['room'])
return context
def get_serializer(self):
return self.get_serializer_class()(**self.get_serializer_context())

出于某种原因,这应该是有效的,我从来没有检查过为什么,但通常情况下,这种情况也会发生在表单kwargs中。

相关内容

最新更新