我正在尝试使用 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>
但从模板来看,这更可能是“概念错误”/“设计错误”。
