29

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

4

3 回答 3

45

正确配置后,使用.url: item.image.url在此处查看文档。

于 2013-04-02T12:58:42.577 回答
10

也许这样?

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

请参阅如何从 Django QuerySet 中获取绝对图像 URL 列表?

于 2013-04-02T15:30:16.437 回答
2

我刚刚弄清楚问题出在哪里......绝对图像路径保存在文件变量中。

示例(在视图中):

item = Item.objects.get(pk=1)
print item.file # prints out full path of image (saved in media folder)
于 2013-04-02T16:39:25.953 回答