2

我正在尝试编辑用户的组成员身份,我的控制器中有:

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)

但它不起作用,我得到一个 : list index out of range

我知道只有一排,但我不明白为什么它看起来是空的..

在此先感谢
基督教

4

1 回答 1

2

优秀的!

非常感谢安东尼和马西莫。

它节省了我的时间,现在一切都在使用 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 Massimo Di Pierro 写道: 你有两个 id 字段。request.get_vars.id 中的一个(来自 url)和 request.post_vars.id 中的一个(来自表单提交)。

于 2012-08-22T17:10:02.953 回答