我正在尝试在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,我想知道如何获取图像字段中保存的图像的绝对路径(在Django视图中)。
答案 0 :(得分:38)
正确配置后,请使用.url
:item.image.url
。查看文档here。
答案 1 :(得分:6)
也许这样?
@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?
答案 2 :(得分:2)
我只知道问题是什么...绝对图像路径保存在文件变量中。
示例(视图中):
item = Item.objects.get(pk=1)
print item.file # prints out full path of image (saved in media folder)