如何将一对多关系传递给object.all()查找为可迭代的上下文

我很难设法解决这个问题。多对一关系已被详细记录,但我找不到如何将model.objects.all()查找的所有关系传递给上下文的示例。


我正在尝试做类似的事情


models.py

from django.db import models


class Image(models.Model):


    image_file = models.ImageField()

    imageset = models.ForeignKey(ImageSet)



class ImageSet(models.Model):

    title = models.CharField(max_length)

views.py

from django.shortcuts import render

from models import Image, ImageSet


def images(request):

    imagesets = ImageSet.objects.all()

    return render(request, 'template.html', {'imagesets': imagesets})

template.html

{% for imageset in imagesets %}

    {{ imageset.title }}

    {% for image in imageset.images  %}

        <img src="{{image.image_file.url}}" alt="">

    {% endfor %}

{% endfor %}

我已经尝试过了,imagesets = ImageSet.objects.all().prefetch_related()但它似乎仅适用于ManyToMany关系。


MYYA
浏览 156回答 3
3回答

动漫人物

给定ImageSet模型实例,您可以使用...访问相关图像。images = my_imageset.image_set.all()...因此您可以将模板更改为...{% for imageset in imagesets %}&nbsp; &nbsp; {{ imageset.title }}&nbsp; &nbsp; {% for image in imageset.image_set.all&nbsp; %}&nbsp; &nbsp; &nbsp; &nbsp; <img src="{{image.image_file.url}}" alt="">&nbsp; &nbsp; {% endfor %}{% endfor %}有关更多信息,请参见Django有关相关对象的文档。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python