web2py: 全局名称 'crud' 未定义

web2py: global name 'crud' is not defined

我目前正在学习 web2py 教程,我被要求附加到我的 controls/default.py:

def entry_post():
"""returns a form where the can entry a post"""
form = crud.create(db.post)
return dict(form=form)

这很好,但如果我尝试去:mywebsite/app/default/entry_post我收到一个票证错误: 全局名称 'crud' 未定义

现在,我已经阅读了 web2py 文档并且我知道 crud.create(db.table) 是一个有效的语法,那么为什么会发生这种情况?

感谢您的回答

Crud必须导入并实例化:

from gluon.tools import Crud
crud = Crud(db)

这通常在模型文件中完成,因此在任何控制器中都可用。

顺便说一句。 Crud 是我们不再支持的旧 API。

form = crud.create(db.post)

应该重写为

form = SQLFORM(db.post).process()