Python 以10为基数的long()的文本无效:“我的库名”

Python 以10为基数的long()的文本无效:“我的库名”,python,postgresql,web2py,web2py-modules,Python,Postgresql,Web2py,Web2py Modules,我正在控制器中编写查询代码: books=db(db.book.lib_name=="My-Library-Name").select(db.book.title, db.book.ISBN, orderby=db.book.title) 但我一直在犯这样的错误: <type 'exceptions.ValueError'> invalid literal for long() with base 10: "My-Library-Name" 提前感谢respondlib name

我正在控制器中编写查询代码:

books=db(db.book.lib_name=="My-Library-Name").select(db.book.title, db.book.ISBN, orderby=db.book.title)
但我一直在犯这样的错误:

<type 'exceptions.ValueError'> invalid literal for long() with base 10: "My-Library-Name"

提前感谢respond

lib name是外键,因此它不是有效的查询。查询可以改为基于db.book.ISBN

另一方面,我建议将您的型号更改为:

db.define_table('library',
        Field('lib_name', ondelete='CASCADE', unique=True),
        Field('address', length=20),
        migrate=True,
        )

db.define_table('book',
            Field('ISBN', unique=True, ondelete='CASCADE'),
            Field('lib_name', 'reference library'),
            Field('pic', 'upload'),
            Field('title', length=100),
            Field('publisher_lname', length=50),
            Field('publisher_fname', length=50),
            Field('no_of_copies', 'integer'),
            Field('available_copies', 'integer'),
            Field('description', length=255),
            migrate=True,
            )

因为primarykey旨在连接到。不知道这是不是你的案子

我的书库名称不是number@PadraicCunningham我没有将lib_name字段指定为integer或long。默认情况下,它是一个字符串。但为什么呢?这发生在PostgreSQL本身之上,在你的应用程序的数据访问代码中。@CraigRinger谢谢你的回答。“但我该怎么解决呢?”贾拉甘塔尔说,“如果我知道这一点,那将是一个答案,而不是评论。”。我想说的是,这看起来不像是PostgreSQL问题。想必这是web2py中的东西,不管是什么。
db.define_table('library',
        Field('lib_name', ondelete='CASCADE', unique=True),
        Field('address', length=20),
        migrate=True,
        )

db.define_table('book',
            Field('ISBN', unique=True, ondelete='CASCADE'),
            Field('lib_name', 'reference library'),
            Field('pic', 'upload'),
            Field('title', length=100),
            Field('publisher_lname', length=50),
            Field('publisher_fname', length=50),
            Field('no_of_copies', 'integer'),
            Field('available_copies', 'integer'),
            Field('description', length=255),
            migrate=True,
            )