【发布时间】:2015-08-29 23:20:32
【问题描述】:
我想形成一个用户请求表的 SQLFORM.grid()。基本上这样用户就可以更改他们想要查看的表格。到目前为止,这是我想出的:
动作。它将grid 初始化为None,除非有其他请求:
def sheet():
grid = None
dbTables = db.tables
if request.args:
table = request.args(0,cast=str)
grid = SQLFORM.grid(db[table])
return dict(grid=grid, dbTables=dbTables)
视图。如果有人请求,它会显示一个请求的表:
{{extend 'layout.html'}}
{{if grid == None:}}
No table selected
{{else:}}
{{=grid}}
{{pass}}
现在,如果没有任何请求,这确实有效,但如果我在地址栏中输入,例如,/sheet/auth_user 或其他任何内容,它会显示一条显示“未授权”的 Flash 消息,并在地址栏中写入一个奇怪的签名:/sheet?_signature=69abba0414d5920e970d8c9b17f5cbb60a5bbecc.
唯一能打破这一点的是请求。如果我将代码简化为基础并在代码中手动更改我想要的表格,它就可以正常工作。所以这行得通:
def sheet():
grid = None
dbTables = db.tables
table = "auth_user"
grid = SQLFORM.grid(db[table])
return dict(grid=grid, dbTables=dbTables)
我做错了什么?
【问题讨论】:
标签: web2py