gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 18:56:49 25 4
gpt4 key购买 nike

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

我正在尝试做类似的事情

模型.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})

模板.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_lated()但它似乎只适用于ManyToMany关系。

最佳答案

给定 ImageSet 模型的实例,您可以使用以下方式访问相关图像

images = my_imageset.image_set.all()

...所以您只需将模板更改为...

{% for imageset in imagesets %}
{{ imageset.title }}
{% for image in imageset.image_set.all %}
<img src="{{image.image_file.url}}" alt="">
{% endfor %}
{% endfor %}

请参阅 Related objects 上的 Django 文档了解更多信息。

关于python - 如何将objects.all() 查找上的一对多关系传递给上下文作为可迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17093464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com