【发布时间】:2016-08-02 13:55:41
【问题描述】:
我将 smartgrid 与“网格中”版本的值一起使用。为此,我使用 .represent 函数将 row_id 添加到变量名称中,这样我就可以在 request.post_vars 中检索要更新的内容,在其中我可以检索带有提交值的文件名 id 列表。 但我想确定用户在智能电网中所做的更改,而无需在数据库中进行额外的 I/O。是否有一个全局变量在用户更改之前记录表单字段和初始值?还是在将表单字段和值发送到视图之前提取表单字段和值的函数?
【问题讨论】:
-
请显示您的代码,因为您不太清楚您要实现的目标。
-
db.define_table('cny',Field('f_cny')) @auth.requires_login() def tst(): tb = db.cny if len(request.post_vars) >0: d = {} for k,v in request.post_vars.iteritems(): (f,sep,r) = k.partition('r') if r: d[r][f] = v for r in d: db(tb.id==r).update(**d[r]) tb.f_cny.represent=lambda v,r:string_widget(tb.f_cny, v, **{'_name' :'f_cny_r_%s' % r.id}) f = SQLFORM.smartgrid(tb,linked_tables=[],selectable=(lambda ids:redirect(URL(request.controller,request.function,args=request.args)) )) 返回字典(f=f)
-
请以正确的格式将代码放入问题中。
标签: variables field edit web2py