我正在尝试编辑用户的群组成员资格,我在我的控制器中:
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)
但它没有用,我得到了: 列表索引超出范围
我知道只有一行,但我不明白为什么它似乎是空的..
提前致谢
基督教
答案 0 :(得分:2)
出色!
非常感谢Anthony和Massimo。
它保存了我的一天,现在所有人都在使用request.get_vars.id而不是request.vars.id
参考:
2012/8/22 Anthony写道: 是。注意,web2py将request.get_vars中的GET变量和request.post_vars中的POST变量存储起来。它在request.vars中存储GET和POST变量。如果get_vars和post_vars都具有相同名称的变量,则会将其值放在request.vars中的列表中。只需更改代码即可使用request.get_vars.id而不是request.vars.id。
2012/8/22 Massimo Di Pierro写道: 你有两个id字段。一个在request.get_vars.id中(来自url),另一个在request.post_vars.id中(来自表单提交)。