我正在尝试使用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
答案 0 :(得分:2)
此处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">{{ singlegroup.title }}</h3>
<ul class="hotel-title mb-3"> ....</ul></section>
但是根据模板,这可能更多是“概念错误” /“设计错误”。