当我使用sqlform.grid时,为什么request.vars会添加一个带有空值的附加键“记录”?

时间:2016-09-12 04:30:36

标签: web2py

我的web2py版本是2.14.6。

我在myview.html中定义了一个表单

   `<form action="{{=URL('default','sj_xxxx')}}" method='get'>
    <input id='shizhou' name='shizhou'>
    <input id='xianqu' name='xianqu'>
    <input id='xiangzhen' name='xiangzhen'>
    <input type="submit" value="query">
    </form>` 

在我的默认控制器函数'index'中我想处理从html传递的request.vars。它工作正常。然后我在我的函数中添加form=SQLFORM.grid(query),我发现当执行sqlform.grid()行时,request.vars会添加一个带有空值的附加键“records”。所以我调试了源代码,我发现sqlhtml.py中的第2479行是

elif not request.vars.records: request.vars.records = []

在上述行之后,我的request.vars被添加了一个带有空值的附加键“记录”。我的问题是,

1.如何防止在我的request.vars中添加“记录”键?

2.代码的目的是什么

elif not request.vars.records: request.vars.records = []

1 个答案:

答案 0 :(得分:0)

网格可选地包含一列复选框,以允许选择单个记录,完成后,所选记录的ID将存储在request.vars.records(以及request.post_vars.records中,如同选择是通过POST请求提交的。)

您可以通过常规方式删除records密钥:

del request.vars.records

request.vars.pop('records')

但是,您可以通过request.get_vars访问自定义表单中的变量,而不是这样做,因为您的表单是通过GET请求提交的。

相关问题