2015-04-05 22 views
2

文檔說把這個地方:如果把自動setup_schema爲ColanderAlchemy +金字塔

from sqlalchemy import event 
from colanderalchemy import setup_schema 
event.listen(mapper, 'mapper_configured', setup_schema) 

應該在哪裏這個去金字塔?我應該使用金字塔事件而不是SQLAlchemy的?

當我試着把它放在models.py文件的頂部時,它抱怨mapper不存在;我還應該使用它嗎?

回答

1

您需要使用SQLAlchemy events,因爲它們可以告訴SQLAlchemy內部發生了什麼(它們根本不涉及金字塔事件)。

ColanderAlchemy的文檔很混亂;他們要求的mapper這裏是你的模型類(它是而不是映射器)。

因此,在你的模型,你應該做的是這樣的:

class MyModelClass(Base): 
    ... 

event.listen(
    MyModelClass, 
    "mapper_configured", 
    setup_schema) 
+1

合併完成後,文檔[很快](https://github.com/stefanofontanelli/ColanderAlchemy/pull/82)將會有所改進。隨意爲此代碼提供修補程序。你也可以建議其他的改進! – davidjb 2015-04-06 22:42:47

1

測試套件顯示了它的工作是這樣的:

from sqlalchemy import event 
from colanderalchemy import setup_schema 
from sqlalchemy.orm import mapper 

event.listen(mapper, 'mapper_configured', setup_schema) 

請讓我知道能否解決你和我可以據此更新文檔。

+0

是的,似乎工作。謝謝。與文檔有關的問題是(除了那個進口問題)我不知道下一步該怎麼做;即我試圖使用金字塔,sqlalchemy和第一次變形。在我變得太遠之前,我現在必須學習漏勺。然後爲了加速_that_ up,我現在必須學習colanderalchemy。如果colanderalchemy文檔(作爲colanderalchemy是最專業的組件)剛剛說過如何註冊模型(完成),然後在我的view_config中放入什麼以將變形表單轉換爲模板, ,然後驗證響應。 – 2015-04-11 13:51:44

+0

你可能想看'pyramid_deform'。我發現它對我的用途限制太多,但它使得將變形融入金字塔變得容易。 – 2015-04-28 15:32:45