我正在尝试使用SQLFORM.grid来显示项目的查询,并且有一个布尔字段将显示为表单上的复选框.我希望能够检查我想要移动的项目的复选框.提交时,它会对数据库进行更新,并执行将所选项目的图像文件复制到文件夹中的特殊功能.
我的SQLFORM.grid正常显示复选框,但我根本无法选中复选框.同样,我不知道我将如何拥有它,以便选定的项目将经历这两个步骤.
我甚至在SQLFORM.grid上设置了editable = True也设置了db.items.isMoved.writeable = True
以下是我的代码:
模型:
db.define_table('items', Field('itemNumber', 'id'), Field('numSold', 'integer'), Field('imageName', 'string'), Field('isMoved','boolean') Field('timeStamp', 'datetime'))
控制器:
class VirtualProfitField(object): def profit(self): return "$" + str(self.items.price * self.items.numSold) db.items.virtualfields.append(VirtualProfitField()) def display_form(): default_sort_order = [ebaydb.items.numSold] db.items.timeStamp.readable = False db.items.imageName.readable = False query = (db.items.numSold > 100) default_sort_order = [db.items.numSold] form = SQLFORM.grid(query=query, orderby=default_sort_order, create=True, deletable=True, editable=True, maxtextlength=64, paginate=25, csv=False, links=[dict(header=T('Profit'),body=lambda row: row.profit), dict(header=T('Image'), body = lambda rowB: A(IMG(_src=URL('static', "images/images/"+ rowB.imageName.replace('\\','/')), _static', "images/images/"+ rowB.imageName.replace('\\','/'))))] if len(request.args) > 1 and ('edit' in request.args): db.items.timeStamp.readable = False db.items.imageName.writeable = False return dict(form=form)
"编辑"或"更新"按钮从不显示.
同样,我在哪里以及如何编码将所选文件移动到另一个文件夹?我能够获取已检查项目的itemNumber和imageName吗?
非常感谢你的帮助!!
约翰
PS:我感觉安东尼的存在......