在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)
但是我发现这段代码无法创建记录。我错过了什么吗?
答案 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
已被弃用。首选SQLFORM
和SQLFORM.grid
。