クラスA(db.Modelから継承)からすべての適切なSQLAカラムを取得する簡単な方法を知っています - 実行時にA.__table__.columns
を実行できます。しかし、Aにもいくつかのアソシエーション・プロキシがあります。クラスの属性をすべて実行しているだけでなく、それらのリストを取得するためのエレガントな方法はわかりません。 SQLAの検査を使用する方法がありますか?SQLAlchemyクラス内のすべてのアソシエーションプロキシの検索
私はPython 2.7とFlask-SQLAlchemyを使用しています。
@everilaeありがとうございました。私は 'all_orm_descriptors'に慣れていませんでした。しかし、私が回避しなければならなかったことの1つは、検査から返されたアソシエーションプロキシオブジェクトが部分的であったという事実でした。私は 'remote_attr'や' local_attr'のような属性にほとんどアクセスできませんでした。 'Classオブジェクトは期待通りですが、 'None'を返します。プロキシの名前、そして 'getattr'を使用します。 さらに詳しい提案はありますか? – mcouthon
'AssociationProxy' [descriptorオブジェクト](https://docs.python.org/3/howto/descriptor.html)の' attr'、 'remote_attr'、または' local_attr'にアクセスしようとするとエラーが発生します。最初にモデルクラスまたはインスタンスを介してアクセスしたことがあります。記述子は、クラス構築中にバインドされているクラスへの参照を取得しません。その代わりに、クラスと可能なインスタンスは、 'the_proxy .__ get __(None、A)'のように、アクセス時に記述子の '__get__'メソッドに渡されます。 'AssociationProxy'インスタンスは1回目の呼び出しで参照を保存しているようです。その後、' attr'などにアクセスすることができます。 –
[Invoking Descriptors](https://docs.python.org/3/howto/descriptor.html#呼び出す記述子)を参照してください。 –