Поле Graphene Django File получает абсолютный путь

У меня есть поле изображения в моей модели Django, и я пытаюсь получить абсолютный путь вывода поля изображения из Graphene, чтобы подключиться к моему клиенту.

class ProfileType(DjangoObjectType): 
     class Meta: model = Profile

     def resolve_avatar(self, info, **kwargs):

    print(info.context.build_absolute_uri(self.avatar))

Я не могу получить абсолютный путь к полю файла.


person Udemezue John    schedule 05.09.2019    source источник


Ответы (2)


Если Profile.avatar - ImageField, вы должны использовать self.avatar.url вместо self.avatar:

info.context.build_absolute_uri(self.avatar.url)
person ar7n    schedule 23.12.2019

Итак, я получил ответ на этот вопрос и хочу убедиться, что опубликую его, кто-то другой не совершит такой же ошибки.

Вот как должен выглядеть код

class ProfileType(DjangoObjectType):

    class Meta:

        model = Profile

    avatar          = graphene.String()
    cover_photo     = graphene.String()


    def resolve_avatar(self, info):

        return info.context.build_absolute_uri(self.avatar.url)

    def resolve_cover_photo(self, info):

        return info.context.build_absolute_uri(self.cover_photo.url)

person Udemezue John    schedule 23.06.2021