鱼C论坛

 找回密码
 立即注册
查看: 1299|回复: 7

[已解决]转换问题

[复制链接]
发表于 2023-5-9 14:23:36 | 显示全部楼层 |阅读模式
5鱼币
    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'
麻烦大佬看看
最佳答案
2023-5-9 14:23:37

  1. class Cs(object):
  2.     def __init__(self, request,page="page",pagesize=17
  3.                  ):
  4.         # page = int(request.GET.get('ym', 1))
  5.         page = request.GET.get("ym", 1)
  6.         if isinstance(str) and page.isdigit():      # 注意这里
  7.             page = int(page)
  8.         else:
  9.             page = 1
复制代码

最佳答案

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-9 14:23:37 | 显示全部楼层    本楼为最佳答案   

  1. class Cs(object):
  2.     def __init__(self, request,page="page",pagesize=17
  3.                  ):
  4.         # page = int(request.GET.get('ym', 1))
  5.         page = request.GET.get("ym", 1)
  6.         if isinstance(str) and page.isdigit():      # 注意这里
  7.             page = int(page)
  8.         else:
  9.             page = 1
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-9 14:24:01 | 显示全部楼层
看起来您将  page  的值从  request.GET.get('ym', 1)  赋值给了  page ,如果  request.GET.get('ym', 1)  返回的是字符串,则您需要检查该字符串是否只包含十进制数字,以便将其转换为整数。如果该字符串不是十进制数字,则将  page  的值设置为 1。

您可以尝试以下代码:

  1. def __init__(self, request, page="page", pagesize=17):
  2.     page = request.GET.get("ym", 1)
  3.     if page.isdigit():
  4.         page = int(page)
  5.     else:
  6.         page = 1
复制代码


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

希望这可以帮助您解决问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 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'
[09/May/2023 14:31:23] "GET /cs/?q=nginx HTTP/1.1" 500 73549
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-5-9 14:49:05 | 显示全部楼层
isdkz 发表于 2023-5-9 14:24
看起来您将  page  的值从  request.GET.get('ym', 1)  赋值给了  page ,如果  request.GET.get('ym', 1)  ...

大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 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
我修改了  这样 可以正常运行     前台输入字符串默认显示第一列的数据

但是输入整数  前台还是显示第一列
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 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'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-10 09:25:14 | 显示全部楼层
hxd,太强了,在这里找到了答案,感激感激~~~呜呜呜
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-5 23:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表