以下web2py代码如何提供数据库记录创建?

时间:2016-10-19 19:12:06

标签: web2py

web2py book chapter on Forms and Validators作者声明以下代码:

def manage():
    table=db[request.args(0)]
    form = crud.update(table,request.args(1))
    table.id.represent = lambda id, row: A('edit:',id,_href=URL(args=(request.args(0),id)))
    search, rows = crud.search(table)
    return dict(form=form,search=search,rows=rows)

允许您搜索,创建并编辑任何传递表名的表中的记录request.args(0)

但是我发现这段代码无法创建记录。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

在以下行中:

form = crud.update(table,request.args(1))

当网址名称后面没有包含arg时,request.args(1)将返回None,而crud.update(table, None)相当于crud.create(table)(事实上,后者在内部)简单地称之为前者。

因此,像/myapp/mycontroller/manage/mytable/5这样的网址会为记录5提供更新表单,但/myapp/mycontroller/manage/mytable会提供创建表单。

另请注意,Crud已被弃用。首选SQLFORMSQLFORM.grid