我刚刚开始使用web2py,实际上无法通过SQLFORM.grid部分。 我的数据在mySQL数据库中,我正在尝试调用它。
我定义了表但没有id字段,因为我将其称为“itemNumber”并将其用作我的id字段。
db.define_table('items',
Field('itemNumber', 'integer'),
Field('title', 'string'),
Field('price', 'integer'),
Field('numSold', 'integer'))
在我的default.py
中def display_form():
db.items.id.readable = False
query = (db.items.numSold)
fields = (db.items.price, db.items.numSold, db.items.title)
headers = {'items.price': 'Price', 'items.numSold': '# Sold', 'items.title': 'Title'}
default_sort_order = [db.items.numSold]
form = SQLFORM.grid(query=query, fields=fields, headers=headers, orderby=default_sort_order, create=False, deletable=False, editable=False, maxtextlength=64,
paginate = 25)
return dict(form=form)
html页面上提供的错误: 不支持查询:(1054,“字段列表'中的未知列'items.id'”) 没有找到记录
我以为我读过SQLFORM.grid自动调用“.id”但是如果在我的情况下,唯一键名为itemNumber而不是id?
如何关闭它?
非常感谢,
约翰
答案 0 :(得分:2)
您的表定义应如下所示:
db.define_table('items',
Field('itemNumber', 'id'),
当您将字段类型指定为“id”时,web2py会将该字段视为自动递增的整数主键,并且不会创建名为“id”的单独字段。