Ответ 1
При правильной настройке используйте .url
: item.image.url
. Проверьте документы здесь.
Я пытаюсь получить абсолютный путь ImageField в представлении Django, чтобы я мог открыть изображение, написать на нем что-то, а затем передать его пользователю.
У меня проблема с получением абсолютного пути для изображения, которое сохраняется в папке с носителями.
item = get_object_or_404(Item, pk=pk)
absolute_url = settings.MEDIA_ROOT + str(item.image.path)
Я получаю ошибку, что item.image не имеет пути (The 'banner' attribute has no file associated with it.
). item.image - это ImageField, и я хотел бы знать, как получить абсолютный путь изображения, сохраненного в поле изображения (в представлении Django).
При правильной настройке используйте .url
: item.image.url
. Проверьте документы здесь.
Может, так?
@property
def get_absolute_image_url(self):
return "{0}{1}".format(MEDIA_URL, self.image.url)
см. Как получить список абсолютных URL-адресов изображений из Django QuerySet?
Я только что понял, в чем проблема... абсолютный путь изображения сохраняется в переменной файла.
Пример (в представлении):
item = Item.objects.get(pk=1)
print item.file # prints out full path of image (saved in media folder)