从原始 Django SQL 查询中获取文件 URL

Get file URL from raw django SQL query

我有两个模型

class Post(models.Model):
   ...

class PostImage(models.Model):
   post = models.ForeignKey(Post)
   ...

在 ListView 中,我需要查询 post 和一张图片,所以我最终编写了一个原始查询。 我现在遇到的是 url 字段是 Django 尝试的简单路径字符串 从我的应用程序加载,而不是 MEDIA_URL 如果对象是通过 ORM 加载的,否则它会工作。

有没有办法使用 Django 语法将该路径转换为模板中的 URL?

{{ post.image.url }}

你可以获取 .first() [Django-doc] PostImage 例如并使用它来渲染图像 URL:

{{ post<b>.postimage_set.first</b>.image.url }}

这里的postimage_setrelated_name=… parameter [Django-doc]的默认值,如果你自己指定一个related_name,那么你应该把postimage_set替换成那个名字。