我正在使用SQLFORM.grid并添加了selectable来选择记录。
form = SQLFORM.grid(query=query, fields=fields, headers=headers,
orderby=default_sort_order, create=False, deletable=False, editable=True,
maxtextlength=64, user_signature=False, paginate=25, csv=False,
selectable=lambda ids: [copy_itemNumbers(ids)])
选定行的ID将作为列表传递给函数:
def copy_itemNumbers(ids):
for row in ids:
db(db.items.id==int(row)).update(isMoved=1)
我想逐个更新每条记录,并将布尔值isMoved设置为1。 它似乎已经完成,但更新永远不会实现到数据库中。我尝试了update_record方法没有运气或只是错误......
我缺少什么?
谢谢!
约翰
更新:
下面是我的定义表
db.define_table('items',
Field('itemNumber', 'id'),
Field('price', 'integer'),
Field('numSold', 'integer'),
Field('imageName', 'string'),
Field('isMoved', 'boolean'),
)
答案 0 :(得分:1)
在搜索了interWeb之后,我发现web2py将boolean视为boolean,而mysql将其视为tinyin(1)
所以,将其添加到模型
import copy
然后
db._adapter.types = copy.copy(db._adapter.types)
db._adapter.types['boolean']='TINYINT(1)'
db._adapter.TRUE = 1
db._adapter.FALSE = 0
这解决了问题!
来源:https://groups.google.com/forum/#!topic/web2py/IukqqZF_PPE
我不确定自那时起Web2Py是否已更新?