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"
提前感谢respondlib 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,
)