Python 如何在同一数据上使用Django for循环两次
我试图使用for循环在同一Django模板中对同一数据进行两次迭代。但是,第二个for循环只返回数据库中的第一个对象 基本上,我在主页上的数据库中有每个工作的图像,当点击它时,应该会显示该工作的更详细描述。数据库中的所有作业在主页上显示良好,但单击时,它们都显示第一个作业的描述 我认为这与只能使用一次迭代器有关,但我不知道解决方案是什么 model.pyPython 如何在同一数据上使用Django for循环两次,python,django,Python,Django,我试图使用for循环在同一Django模板中对同一数据进行两次迭代。但是,第二个for循环只返回数据库中的第一个对象 基本上,我在主页上的数据库中有每个工作的图像,当点击它时,应该会显示该工作的更详细描述。数据库中的所有作业在主页上显示良好,但单击时,它们都显示第一个作业的描述 我认为这与只能使用一次迭代器有关,但我不知道解决方案是什么 model.py from django.db import models class Job(models.Model): title = mode
from django.db import models
class Job(models.Model):
title = models.CharField(max_length=50, default="Example Work")
image = models.ImageField(upload_to='images/')
summary = models.TextField()
views.py
from django.shortcuts import render
from .models import Job
def get_index(request):
jobs = Job.objects
return render(request, 'index.html', {'jobs': jobs})
index.html
{%用于jobs.all%}
{{job.title}
{%endfor%}
{%用于作业中的作业。所有%}
{{job.title}
{{job.summary}
{%endfor%}
这与Django为每次迭代输出相同的数据无关。如果您在浏览器中通过查看源代码检查生成的HTML,您肯定会看到正确的数据
问题在于HTML本身。不能有多个元素具有相同的HTMLid
属性;但您对每一个都使用了id=“portfolio model”
。当你的JS试图弹出模式时,它只会找到这个ID的第一个实例
您需要在每次迭代中使用不同的ID—可能是通过附加一个唯一的元素,例如作业pk—和/或使用一个类来触发模态。啊,好的,谢谢,这很有意义。最初,我为每一个模态都有不同的ID,但我已经将其压缩到循环中,并且忘记了这一点。谢谢你的帮助。