我正在尝试使用 get() 来显示单个项目。
型号:
class JoinGroup(models.Model):
title=models.CharField(max_length=120)
location=models.CharField(max_length=20)
details= models.TextField()
travelers_that_have_booked=models.FloatField()
price1=models.FloatField()
price2=models.FloatField()
price3=models.FloatField()
price4=models.FloatField()
price5=models.FloatField()
price6=models.FloatField()
price7=models.FloatField()
image1=models.ImageField()
image2=models.ImageField()
image3=models.ImageField()
image4=models.ImageField()
image5=models.ImageField()
image6=models.ImageField()
image7=models.ImageField()
accomodation=(
('budget'),
( 'standard')
)
itinerary= models.TextField()
created_on=models.DateField(auto_now_add=True)
bookbefore=models.DateField()
def __str__(self):
return self.title
浏览次数:
def single(request, id):
singlegroup = get_object_or_404(JoinGroup, id=id)
return render(request, 'joingroup/single.html', {"singlegroup": singlegroup})
错误:
'JoinGroup' object is not iterable
最佳答案
这里的singlegroup
不是一个QuerySet
,它是一个JoinGroup
对象,所以除非你创建了这个对象可迭代(错误表明你没有),你不能迭代它。
在您的模板中,您可以编写:
{% for sgs in singlegroup %}
<section><h3 class="fw-md mb-1">{{sgs.title}}</h3>
<ul class="hotel-title mb-3"> ....</ul&>lt;/section>
{% endfor %}
但这没有多大意义,因为您获取了单个 JoinGroup
对象,因此您只能渲染该单个对象。您可以将模板重写为:
<section><h3 class="fw-md mb-1">{{ <b>singlegroup</b>.title }}</h3>
<ul class="hotel-title mb-3"> ....</ul></section>
但根据模板,这可能更多的是“概念错误”/“设计错误”。
关于python - ' ' 对象不可迭代。 Django 1.11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52949072/