tengke 发表于 2023-5-9 14:23:36

转换问题

    def __init__(self, request,page="page",pagesize=17
               ):
      # page = int(request.GET.get('ym', 1))
      page=request.GET.get("ym",1)
      if page.isdecimal():
            page = int(page)
      else:
            page = 1

启动时候报错
    if page.isdecimal():
AttributeError: 'int' object has no attribute 'isdecimal'
麻烦大佬看看

isdkz 发表于 2023-5-9 14:23:37

tengke 发表于 2023-5-9 14:49
大佬

class Cs(object):
    def __init__(self, request,page="page",pagesize=17
               ):
      # page = int(request.GET.get('ym', 1))
      page = request.GET.get("ym", 1)
      if isinstance(str) and page.isdigit():      # 注意这里
            page = int(page)
      else:
            page = 1

isdkz 发表于 2023-5-9 14:24:01

看起来您将page的值从request.GET.get('ym', 1)赋值给了page ,如果request.GET.get('ym', 1)返回的是字符串,则您需要检查该字符串是否只包含十进制数字,以便将其转换为整数。如果该字符串不是十进制数字,则将page的值设置为 1。

您可以尝试以下代码:

def __init__(self, request, page="page", pagesize=17):
    page = request.GET.get("ym", 1)
    if page.isdigit():
      page = int(page)
    else:
      page = 1


在这里,我们使用isdigit()方法检查字符串是否只包含数字,以便将其转换为整数。如果字符串不是数字,则将page的值设置为 1。

希望这可以帮助您解决问题。

tengke 发表于 2023-5-9 14:33:00

你好 我修改了我的代码

class Cs(object):
    def __init__(self, request,page="page",pagesize=17
               ):
      # page = int(request.GET.get('ym', 1))
      page = request.GET.get("ym", 1)
      if page.isdigit():
            page = int(page)
      else:
            page = 1
提示没有isdigit这个
    if page.isdigit():
AttributeError: 'int' object has no attribute 'isdigit'
"GET /cs/?q=nginx HTTP/1.1" 500 73549

tengke 发表于 2023-5-9 14:49:05

isdkz 发表于 2023-5-9 14:24
看起来您将page的值从request.GET.get('ym', 1)赋值给了page ,如果request.GET.get('ym', 1)...

大佬

tengke 发表于 2023-5-9 15:19:13

class Cs(object):
    def __init__(self, request,page="page",pagesize=17
               ):
      # page = int(request.GET.get('ym', 1))
      page = request.GET.get("ym", 1)
      if isinstance(page,int):
            page = int(page)
      else:
            page = 1
      self.page = page
      self.pagesize = 17
      self.start = (page - 1) * pagesize
      self.end = page * pagesize
我修改了这样 可以正常运行   前台输入字符串默认显示第一列的数据

但是输入整数前台还是显示第一列

tengke 发表于 2023-5-9 15:23:40

class Cs(object):
    def __init__(self, request,page="page",pagesize=17
               ):
      # page = int(request.GET.get('ym', 1))
      page = request.GET.get("ym", 1)
      if isinstance(page,int):
            self.page = int(page)
      else:
            self.page = 1
      # self.page = page
      self.pagesize = 17
      self.start = (page - 1) * pagesize
      self.end = page * pagesize

修改了这样 后台报错   
self.start = (page - 1) * pagesize
TypeError: unsupported operand type(s) for -: 'str' and 'int'

Axiujiu 发表于 2023-5-10 09:25:14

hxd,太强了,在这里找到了答案,感激感激~~~呜呜呜
页: [1]
查看完整版本: 转换问题