Web2py更新1条记录

时间:2014-01-29 09:03:27

标签: web2py

我正在使用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'),
                    )

1 个答案:

答案 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是否已更新?