我正在尝试编辑 Controller 中用户的组成员身份:
def change_membership():
if request.vars.id:
row = db(db.auth_membership.user_id == request.vars.id).select()
id = row[0].id
form = SQLFORM(db.auth_membership,
id,
fields=['group_id'],
_action=URL()
)
if form.process().accepted:
...redirect back to user list
if form.errors:
response.flash = 'form has errors'
return dict(form=form)
但是它不起作用,我得到一个: 列表索引超出范围
我知道只能得到一行,但我不明白为什么它看起来是空的..
提前致谢
克里斯蒂安
最佳答案
太棒了!
非常感谢安东尼和马西莫。
这节省了我的时间,现在一切都可以使用 request.get_vars.id 而不是 request.vars.id 进行
引用:
2012/8/22 安东尼写道: 是的。请注意,web2py 将 GET 变量存储在 request.get_vars 中,将 POST 变量存储在 request.post_vars 中。它将 GET 和 POST 变量存储在 request.vars 中。如果 get_vars 和 post_vars 都有同名的变量,它会将它们的值放入 request.vars 内的列表中。只需更改您的代码以使用 request.get_vars.id 而不是 request.vars.id。
2012年8月22日马西莫·迪·皮耶罗写道: 你有两个 id 字段。一份在 request.get_vars.id 中(来自 url),一份在 request.post_vars.id 中(来自表单提交)。
关于python - Web2py - 尝试从没有 'for' 句子的 rows 对象获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12064086/