2015-01-30 2 views
1

я в настоящее время после web2py урока, и я попросил, чтобы добавить к моему Контроли/default.py:web2py: глобальное имя «падла» не определен

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

Что это хорошо, но если я стараюсь идти to: mywebsite/app/default/entry_post Я получаю ошибку в билете: глобальное имя 'crud' не определено

Теперь я прочитал документацию по web2py, и я знаю, что crud.create (db.table) является действительный синтаксис, так почему это происходит?

Спасибо за ваш ответ

+0

Потому что вам нужно определить переменную 'crud'. У вас есть «crud = something» раньше в вашей программе? Кроме того, действительно ли правильно отформатирована программа (это не в вашем посте)? – rlms

+0

Было вдавлено, но в импорте была опечатка, которую я не видел (важно без капитала для «Crud»). – Lipton

ответ

3

BTW. Crud - это старый API, который мы больше не поддерживаем.

form = crud.create(db.post) 

следует переписать в виде

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

Большое спасибо за ваш ответ, я решил проблему и ладил (это была опечатка в импорте из gluon.tools) Я не буду использовать ее, если поддержка будет завершена, однако в официальном руководстве рекомендуется, но это может быть потому, что это пятое издание (которое находится в официальной ссылке, хотя 6-й должен быть завершен) Спасибо за ваше время и за разработку программного обеспечения. Мануэль – Lipton

0

Crud должны быть импортированы и экземпляр:

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

Это часто делается в файле модели, так она будет доступна в любом контроллере.

Смежные вопросы