Где поставить автоматическую setup_schema для ColanderAlchemy+Pyramid
Документы говорят, чтобы положить это где-то:
from sqlalchemy import event
from colanderalchemy import setup_schema
event.listen(mapper, 'mapper_configured', setup_schema)
Куда это должно пойти в пирамиде? Должен ли я использовать события Pyramid вместо SQLAlchemy?
Когда я попытался поместить его в начало файла models.py, он пожаловался на mapper
не существует; я должен все еще использовать это?
2 ответа
Вам нужно использовать события SQLAlchemy, поскольку они сообщают о том, что происходит внутри SQLAlchemy (они вообще не связаны с событиями пирамиды).
Документация к ColanderAlchemy сбивает с толку; что они называют для mapper
Вот ваш класс модели (это не картограф).
Таким образом, в ваших моделях вы должны делать что-то вроде:
class MyModelClass(Base):
...
event.listen(
MyModelClass,
"mapper_configured",
setup_schema)
Набор тестов показывает, что он работает так:
from sqlalchemy import event
from colanderalchemy import setup_schema
from sqlalchemy.orm import mapper
event.listen(mapper, 'mapper_configured', setup_schema)
Пожалуйста, дайте мне знать, если это исправит это для вас, и я могу соответствующим образом обновить документацию.