Доступен ли запрос внутри метода сериализатора django to_representation?
Я пытаюсь выполнить проверку запроса внутри метода сериализатора to_representation в django, но self.context всегда пуст. Есть идеи, почему?
class TwitterAccountsListsSerializer(serializers.ModelSerializer):
class Meta:
model = TwitterAccountsList
fields = ["id", "name", "created_at", "is_private", "accounts"]
extra_kwargs = {
"accounts": {"write_only": True},
}
def to_representation(self, instance):
import pdb; pdb.set_trace()
# self.context is always an empty dict here {}
return super().to_representation(instance)
Вам необходимо передать запрос через контекст сериализатора. Если вы используете Generic Views, и функцию get_serializer вместо прямого обращения к сериализатору, запрос передается по умолчанию. В противном случае вы можете передать запрос явно, как показано здесь.
serializer = YouSerializerClass(#other arguments here, context={'request': request})
В общих представлениях, подобных этому
serializer = self.get_serializer(# your argument here)
Затем вы можете получить доступ к этому из сериализатора в любом месте следующим образом
request = self.context.get('request')