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}