tengke 发表于 2023-4-25 16:02:34

'int' object is not iterable

def cs(request):
    # for i in range(100):
    #   models.Userinfo.objects.create(name="11",password="ddq")
    n = request.GET.get('q')
    if n:
      page = models.Userinfo.objects.filter(
            Q(id__icontains=n) |
            Q(name__icontains=n) |
            Q(password__icontains=n) |
            Q(age__icontains=n) |
            Q(daa__icontains=n)
      )
    else:
      page = models.Userinfo.objects.all()
    print()
    # return render(request, 'hrr.html', {'deat': page})
    page = int(request.GET.get('ym',1))
    pagesize= 17
    start=(page - 1) * pagesize
    end=page * pagesize
    queryset = models.Userinfo.objects.all()
    total_cout = models.Userinfo.objects.all().count()
    totalpagecount , div = divmod(total_cout,pagesize)
    if div:
      totalpagecount += 1
    plus = 5
    startpage= page - plus
    endpage=page +plus + 1
    if totalpagecount <= 2 * plus + 1:
      startpage = 1
      endpage = 2 * plus +1
    else:
      if page <= plus:
            startpage = 1
            endpage = 2* plus +1
      else:
            if (page + plus) > totalpagecount:
                endpage = totalpagecount
                startpage= totalpagecount - 2 * plus
            else:
                startpage = page - plus
                endpage = page + plus
    pagestrlist = []
    pagestrlist.append('<li class="active"><a href="?ym={}">首页</a></li>'.format(1))
    if page > 1 :
      prev = '<li class="active"><a href="?ym={}">上一页</a></li>'.format(page - 1 )
      pagestrlist.append(prev)
    else:
      prev = '<li class="active"><a href="?ym={}">上一页</a></li>'.format(1)
      pagestrlist.append(prev)
    for i in range(startpage,endpage +1 ):
      if i == page:
            ele = '<li class="active"><a href="?ym={}">{}</a></li>'.format(i,i)
      else:
            ele = '<li><a href="?ym={}">{}</a></li>'.format(i, i)
      pagestrlist.append(ele)
    if page < totalpagecount :
      prev = '<li class="active"><a href="?ym={}">下一页</a></li>'.format(totalpagecount + 1 )
      pagestrlist.append(prev)
    else:
      prev = '<li class="active"><a href="?ym={}">下一页</a></li>'.format(totalpagecount)
      pagestrlist.append(prev)
    pagestrlist.append('<li class="active"><a href="?ym={}">尾页</a></li>'.format(totalpagecount))
    pagestrlost = mark_safe("".join(pagestrlist))
    return render(request, 'hrr.html', {'deat': queryset,"ym":pagestrlost,'deat':page})




我想把分页改成这样提示错误
    values = list(values)
TypeError: 'int' object is not iterable
"GET /cs/ HTTP/1.1" 500 172891
这个是???????

isdkz 发表于 2023-4-25 16:02:35

根据您给出的代码和错误信息,问题出在这行代码:

page = int(request.GET.get('ym',1))


问题在于,您将整数类型的 `page` 赋值给了 `values` 变量,并尝试将其转换为列表,这会引发一个 TypeError,因为整数对象不是可迭代的。

不过根据您的代码,我没有看到您在哪里尝试将 `values` 转换为列表。您是否在其他地方调用了这段代码?

为了解决此问题,请确保在处理 `page` 变量时不要尝试将其转换为列表。请检查您的代码,找到可能引发错误的位置,并在那里修改代码。如果您无法找到此问题的根源,请提供更详细的代码信息,以便我们能够为您提供更有效的解决方案。
页: [1]
查看完整版本: 'int' object is not iterable