Передача контекста в сериализатор из Viewset
У меня есть Viewset с методом get_serializer_context
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 формы.