如何获取与传递给 Django 模板的查询集相关的查询集对象
Posted
技术标签:
【中文标题】如何获取与传递给 Django 模板的查询集相关的查询集对象【英文标题】:How do you get queryset objects related to queryset passed to templates in Django 【发布时间】:2021-02-25 18:20:42 【问题描述】:我有这两个模型,你可以看到它们有关系。
class Post(models.Model):
text = models.TextField()
class PostImage(models.Model):
post = models.ForeignKey(Post, default=None, on_delete=models.CASCADE)
image = models.FileField(upload_to = 'media/',blank=True, null=True)
据我所知,如果我查询帖子并将它们推送到模板并发布,我希望在我的模板中使用类似的东西来检索附加到帖子的图像 URL,但它似乎不起作用。
% for post in posts %
% for post_image in post.post_image_set.all %
post_image.image.url
% endfor %
% endfor %
我做错了什么?
这是我的views.py
文件。
视图.py
# Create your views here.
def index(request):
posts=Post.objects.filter(approved=True).order_by('-published_date')
context = "posts":posts
return render(request, 'post/home.html',context)
【问题讨论】:
你能分享你的views.py文件吗? 我已经编辑了我的问题。我在下面添加了它们 【参考方案1】:外键关系的默认相关名称是模型的名称 (PostImage),但在您的 for 循环模板中,您将其称为 post_image Following relationships “backward”
改变
% for post_image in post.post_image_set.all %
进入
% for post_image in post.postimage_set.all %
模板代码(有变化)
% for post in posts %
% for post_image in post.postimage_set.all %
post_image.image.url
% endfor %
% endfor %
【讨论】:
以上是关于如何获取与传递给 Django 模板的查询集相关的查询集对象的主要内容,如果未能解决你的问题,请参考以下文章
Django Rest 框架:将查询集传递给 Response()