私はPylonsでアプリケーションを作成しています。私は認証スキームを追加したいと思います。私はレポを選んだ。pylonsに宣言構文を持つrepoze.whatを使用する
http://wiki.pylonshq.com/display/pylonscookbook/Authorization+with+repoze.what
問題がlib/auth.py
に、私は、ユーザー、グループ、および許可のためのモデルを含める必要があるということです:私はPylonsのクックブックからのチュートリアルに従いました。私が展開する際のモデルに宣言型のベースを使用して、それは私にエラーを与える:
sqlalchemy.exc.UnboundExecutionError: No engine is bound to this Table's MetaData.
Pass an engine to the Table via autoload_with=<someengine>, or associate the MetaData
with an engine via metadata.bind=<someengine>
私はここに同様の問題が見つかりました:
SQLAlchemy declarative syntax with autoload (reflection) in Pylons
を私は別の中で宣言した承認のためのすべてのモデルを持っていますファイルは__init__.py
です。私は上記質問からのすべての兆候にも従ったが、まだ間違ったことがある。 誰かが解決策を見つけましたか?
これは機能しません。私のinit_model()は次のようになります: 'def init_model(エンジン): " ""モデルのテーブルやクラスを使用する前に電話してください "" Session.configure(bind = engine) meta.engine = engine Base.metadata.bind = engine' 私はrepozeがミドルウェアとして機能することを指摘するのを忘れていました。 middleware.pyには、私のアプリケーションのいくつかのモデル(認可用)を含むメソッドが含まれています。そして、私が理解するように、init_model()が呼び出される前にモデルがロードされます。これは競合を引き起こす。 – hesler
テーブル( 'some_table'、meta、autoload = True、autoload_with = engine)を読み込んだとき、あなたが見逃しているのは、autoloadとautoload_with argsです。 – webjunkie