Django:在视图中获取ImageField网址

时间:2013-04-02 12:51:45

标签: django view absolute-path imagefield

我正在尝试在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视图中)。

3 个答案:

答案 0 :(得分:38)

正确配置后,请使用.urlitem.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)