AttributeError: объект 'NoneType' не имеет атрибута 'build_absolute_uri' Django Rest Framework

У меня есть этот сериализатор, переводящий путь в url, и он работает сам по себе, но когда я пытаюсь вложить этот сериализатор в другой сериализатор, я получаю эту ошибку. У вас есть идеи, почему? Мне нужна эта функция, потому что иначе она просто показывает пути к изображению в этом главном SpecialistSerializer.

class EntityPhotosSerializer(serializers.ModelSerializer):
    image = serializers.SerializerMethodField('get_file_abs_url')


    class Meta:
        model = EntityPhoto
        fields = ('user', 'entity', 'image',)

    def get_file_abs_url(self, obj):
        request = self.context.get('request')
        return request.build_absolute_uri(obj.image.url)

class SpecialistSerializer(serializers.ModelSerializer):
    reviews_quantity = serializers.IntegerField(source="get_reviews_quantity")

    class Meta:
        model = Entity
        fields = '__all__'

    def to_representation(self, instance):
        data = super().to_representation(instance)
        data['photos'] = EntityPhotosSerializer(many=True, instance=instance.entityphoto_set.all()).data
        return data

Traceback:

В to_representation вы обращаетесь к EntityPhotosSerializer. А в этом сериализаторе вы пытаетесь получить доступ к контексту. Если вы хотите это сделать, вам нужно передать текущий контекст в EntityPhotosSerializer в SpecialistSerializer.

    def to_representation(self, instance):
        data = super().to_representation(instance)
        data['photos'] = EntityPhotosSerializer(many=True, context=self.context, instance=instance.entityphoto_set.all()).data
        return data
Вернуться на верх