ThumbnailerJSONSerializer to representation returns self.context['request'], instance, KeyError: 'request'

У меня есть

models.py

update_data = dict(topic=topic, subtopic=subtopic, chat_id=chat.id, message=VisitorMessageSerializer(m).data)

serializers.py

class VisitorMessageSerializer(NonNullModelSerializer):
     photo = ThumbnailerJSONSerializer(alias='core.Message.photo', read_only=True)
 class Meta:
        model = Message
        fields = ['id', 'created_at', 'text', 'photo', 'author_agent',
                  'document', 'reply_markup', 'is_read', 'has_author', 'clientside_id']

здесь есть NonNullModelSerialzer:

class NonNullModelSerializer(serializers.ModelSerializer):
    def to_representation(self, instance):
        result = super(NonNullModelSerializer, self).to_representation(instance)
        return OrderedDict([(key, result[key]) for key in result if result[key] is not None and result[key] != {}])

Я не могу получить update_data, потому что to_representation возвращает KeyError to_representation self.context['request'], instance, KeyError: 'request'

Вам необходимо добавить контекст сериализатора в сериализатор. В Generic view это делается автоматически

Это должно быть что-то вроде:

update_data = dict(topic=topic, subtopic=subtopic, chat_id=chat.id, message=VisitorMessageSerializer(m, context=self.get_serializer_context()).data)

вместо self.get_serializer_context() вы можете пройти {'request': self.request}

Вернуться на верх