Skip to main content
 首页 » 编程设计

python之' ' 对象不可迭代。 Django 1.11

2024年09月03日28shihaiming

我正在尝试使用 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>

但从模板来看,这更可能是“概念错误”/“设计错误”。