Django:获取视图中的ImageField url

ar5n3qh5  于 2023-03-09  发布在  Go
关注(0)|答案(4)|浏览(178)

我试图在Django视图中获得ImageField绝对路径,这样我就可以打开图像,在上面写一些东西,然后将其提供给用户。
获取保存在媒体文件夹中的图像的绝对路径时遇到问题。

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,我想知道如何获得保存在image field中的图像的绝对路径(在Django视图中)。

wz1wpwve

wz1wpwve1#

如果配置正确,请使用.urlitem.image.url。请在此处查看文档。

hujrc8aj

hujrc8aj2#

这边走?

@property
def get_absolute_image_url(self):
    return "{0}{1}".format(settings.MEDIA_URL, self.image.url)

参见How can I get a list of absolute image URLs from a Django QuerySet?

i2loujxw

i2loujxw3#

我刚弄明白是什么问题了...绝对图像路径保存在文件变量中。
示例(视图中):

item = Item.objects.get(pk=1)
print item.file # prints out full path of image (saved in media folder)
w1jd8yoj

w1jd8yoj4#

假设图像字段称为photo:

图像URL

# Image URL
instance.photo.url

# Image Path
instance.photo.path

在Django“管理文件”文档中可以找到更多。
强哥4.1

将图像添加到模板

<img src="{{instance.photo.url}}" alt="photo">

相关问题