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

Posted

技术标签:

【中文标题】如何从 Django QuerySet 中获取绝对图像 URL 列表?【英文标题】:How can I get a list of absolute image URLs from a Django QuerySet? 【发布时间】:2012-02-22 02:02:48 【问题描述】:

在 Django 中,当您使用 CDN 提供媒体文件时,构建图像 URL 绝对路径的最佳方法是什么?在我的例子中,我有一个 Movie 对象的 QuerySet,我想检索电影的 image 属性的绝对 URL,其中 image 是一个 ImageField。有没有办法通过使用模板标签或 QuerySet API 的 values() 函数来做到这一点?

【问题讨论】:

【参考方案1】:

我通过在模型字段的 url 前面加上 settings.py 中的 MEDIA_URL 值来解决这个问题。您可以在模型上创建一个属性,将该连接路径作为您想要的任何名称返回。

例子:

@property
def get_absolute_image_url(self):
    return '%s%s' % (MEDIA_URL, self.image.url)

【讨论】:

我相信image.url 已经有了媒体前缀。 在 2012 年回答这个问题时,图片 url 没有前置媒体前缀。

以上是关于如何从 Django QuerySet 中获取绝对图像 URL 列表?的主要内容,如果未能解决你的问题,请参考以下文章

从 Django Queryset 获取值列表的最有效方法

如何从 django 视图中的绝对 url 获取相对 url?

如何从名称空间的 Django URL 中获取绝对字符串?

通过ajax获取django的queryset数据

如何将 QuerySet 从 python 传递给 js?

如何编写 Django QuerySet 来获取 DateTimeField 的 UNIX_TIMESTAMP?