【问题标题】:How do you get queryset objects related to queryset passed to templates in Django如何获取与传递给 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文件吗?
  • 我已经编辑了我的问题。我在下面添加了它们

标签: python django django-templates jinja2


【解决方案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 %}

【讨论】:

    猜你喜欢
    • 2016-07-11
    • 1970-01-01
    • 2021-01-27
    • 1970-01-01
    • 2018-07-10
    • 2014-11-04
    • 1970-01-01
    • 2018-03-29
    • 2016-04-17
    相关资源
    最近更新 更多