【发布时间】:2014-01-30 04:25:56
【问题描述】:
我正在为我的表单使用 SQLFORM.grid。视图显示正常,我可以隐藏字段。但是当我进入编辑页面时,我希望某些字段不可读且不可写。在 SQLFORM.grid 调用之前以及在 request.args == 'edit' 中,我已将其设置为 readable=False。我可以确认它检测到编辑页面,但由于某种原因,它没有运行读写操作。
下面是控制器:
def display_form():
db.items.timeStamp.readable = False
db.items.imageName.readable = False
db.items.isCopied.writeable = True
query = (db.items.numSold > 100)
default_sort_order = [db.items.numSold]
if len(request.args) > 1 and ('edit' in request.args):
db.items.timeStamp.readable = False
db.items.imageName.writeable = False
form = SQLFORM.grid(query=query, orderby=default_sort_order, create=False,
deletable=False, editable=True, maxtextlength=64, paginate=25, csv=False,
user_signature=False,
links=[dict(header=T('Profit'),body=lambda row: row.profit),
dict(header=T('Image'), body = lambda rowB: A(IMG(_src=URL('static', "images/"+
rowB.imageName.replace('\\','/')), _width=50, _height=50),
_href=URL('static', "images/"+ rowB.imageName.replace('\\','/'))))],
selectable=get_chosenItems
)
else:
form = SQLFORM.grid(query=query, orderby=default_sort_order, create=False,
deletable=False, editable=True, maxtextlength=64, paginate=25, csv=False,
user_signature=False,
links=[dict(header=T('Profit'),body=lambda row: row.profit),
dict(header=T('Image'), body = lambda rowB: A(IMG(_src=URL('static', "images/"+
rowB.imageName.replace('\\','/')), _width=50, _height=50),
_href=URL('static', "images/"+ rowB.imageName.replace('\\','/'))))],
selectable=get_chosenItems
)
return dict(form=form)
我可以看出,当在编辑页面上时,它会进入 if 语句,但是,它完全忽略了我在那里设置的可读性。
我应该在编辑页面中再次调用表单吗? 我觉得是多余的。
【问题讨论】: