【问题标题】:Django: "'Blogmodel' object is not iterable"Django:“'Blogmodel' 对象不可迭代”
【发布时间】:2021-02-04 06:02:22
【问题描述】:

我有错误“博客模型”对象不可迭代我的

view.py

def blog_list(request):
    articles = Blogmodel.objects.all()
    args = {'articles':articles}
    return render(request,'blog.html',args)

def blogDetail(request, slug):
    article = Blogmodel.objects.get(slug=slug)
    args = {'article':article}
    return render(request,'blogdetail.html',args)

url.py

path("blog/",blog_list, name="blog_list"),
    path("blog/<slug:slug>",blogDetail, name="blogDetail"),

html文件

{% for tt  in article %}
<div class="content_box">
    <div class="content_l left">
        <div class="horoscope_box_big">
            <div class="blog_img1">
                <img src="https://horoskopi.ge/storage/blog/250-ოთხი ზოდიაქოს ნიშანი ყველაზე მაღალი ხელფასებით.png" alt="ოთხი ზოდიაქოს ნიშანი ყველაზე მაღალი ხელფასებით" />
            </div>
            <h1 class="blog_title1"><!-- სათაურის-->
<div class="blog_descr1"><h1>Info</h1>

<p> {{ tt.body }}</p>

</div>
        </div>
    
    
{% endfor %}

当我尝试不使用 for 循环时它正在工作,原因是什么?

【问题讨论】:

  • 可以循环遍历“articles”查询集,“article”是单个对象

标签: django django-models django-rest-framework django-forms django-views


【解决方案1】:

Get() 方法将返回 BlogModel 对象,这就是它不可迭代的原因,因为对于打印文章,您正在使用循环,这就是您需要编写查询集对象的原因,这就是您需要使用 filter() 方法的原因。

看看这个:-

def blogDetail(request, slug):
    article = Blogmodel.objects.filter(slug=slug)
    args = {'article':article}
    return render(request,'blogdetail.html',args)

【讨论】:

    猜你喜欢
    • 2021-07-04
    • 2020-02-28
    • 2013-05-07
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 2021-06-09
    • 2019-10-15
    相关资源
    最近更新 更多