从原始django SQL查询获取文件URL

从原始django SQL查询获取文件URL,django,django-3.1,Django,Django 3.1,我有两种型号 class Post(models.Model): ... class PostImage(models.Model): post = models.ForeignKey(Post) ... 在ListView中,我需要查询一篇文章和一幅图像,因此我最终编写了一个原始查询。 我现在想到的是,url字段是Django尝试使用的简单路径字符串 从我的应用程序加载,而不是媒体URL,如果对象通过ORM加载,则媒体URL会正常工作 有没有办法使用Django语法将该路

我有两种型号

class Post(models.Model):
   ...

class PostImage(models.Model):
   post = models.ForeignKey(Post)
   ...
在ListView中,我需要查询一篇文章和一幅图像,因此我最终编写了一个原始查询。 我现在想到的是,url字段是Django尝试使用的简单路径字符串 从我的应用程序加载,而不是媒体URL,如果对象通过ORM加载,则媒体URL会正常工作

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

{{ post.image.url }}
例如,您可以获取
positmage
,并使用它来呈现图像URL:

{{ post.postimage_set.first.image.url }}
{{post.postimage_set.first.image.url}

如果您自己指定了一个
相关的\u名称,则此处的
positmage\u set
是的默认值,然后,您应该用该名称替换
postmageset

如果我理解正确,Post类型的每个对象都有一个带有外键的模型引用,可以使用此字段访问给定模型
related\u name
?@Zarrie:不是对象,由于
ForeignKey
意味着每个
Post
可以有零个、一个或多个
PostImage
s,因此
related_name
是访问
Post
的相关
PostImage
的经理的姓名。因此
post.postimage\u set
是一个管理相关
postimage
对象集合的管理器。例如,您可以使用
.all()
访问所有这些对象,或者使用
.first()
.last()
访问第一个/最后一个相关对象。