私はUser
(親)とCorporateUser
(子)モデルを持っています。結合ベースの継承を使用しています。 Userのpolymorphic_identityは"user"
であり、CorporateUserの1つは"corporate_user"
です。
私が持っているこの
User.query.filter(User.name.like("%"+search_text+"%"))
のようなクエリでは、それが唯一のタイプCorporateUser
のオブジェクトを返します。このクエリ何かに「チェーン」することは可能ですか?
現在、私は別のものを追加していますUser.query.filter(User.name.like("%"+search_text+"%")).filter(User.type == 'corporate_user')
これはあまり優雅ではありません。サブタイプに基づくSqlalchemyフィルター
私はちょうどできることを知っていますCorporateUser.query.filter(User.name.like("%"+search_text+"%"))
しかし、私は最初のクエリのフィルタが与えられているということです。
ありがとうございました。
これを今すぐ見て - 謝罪してください。私は、 "基本" GenericUserと2つのサブクラス(NormalUserとCorporateUser)を持つことになりました。現在、クエリはずっと簡単です。 また、私が取ったアプローチは.filterの後に.join(CorporateCustomer)を置くことで、名前フィルタが適用され、次にCorporateCustomersだけが返されるようにします。 –