別のテーブルとmany2manyの関係があるcategoriesテーブルでクエリをフィルタリングする必要があります。many2manyリレーションを持つクエリをフィルタリングすることは可能ですか?
テーブルには、テーブルに関連するres_partner
many2manyフィールドがあります。または、パートナーが多くのカテゴリを持つことができるとしましょう。必要なのは、 「business」または「retail」という名前のカテゴリを持つテーブルをフィルタリングすることです。これらのカテゴリのいずれも含まれていない場合は、表示されません。category_id
res_partner_category.res_partner
res_partners
また、 :と関係がある別のフィールドがres_partner
あります。category_value_ids
one2many
res_partners_category_value
res_partner
関係のある次のフィールドがあります。
category_id
tores_partner_category
(many2many)category_value_ids
tores_partner_category_value
(one2many)name
(char)
res_partner_category
関係のある次のフィールドがあります。
partner_ids
tores_partner
(many2many)name
(char)
res_partner_category_value
関係のある次のフィールドがあります。
category_group_id
tores_partner_category
(many2one)category_id
tores_partner_category
(many2one)object_id
tores_partner
(many2one)
しかしres_partner_category_value
、SQLクエリでテーブルを使用しようとすると、クエリで使用できないというエラーが発生します。
したがって、たとえば、これらのカテゴリのパートナーが4つある場合:
- 最初:categ1、categ2、business
- 2番目:小売
- 3番目:小売、ビジネス
- 4番目:categ1、categ2
クエリは、第1、第2、および第3のパートナーを返す必要があります。
ある人は、many2manyの関係でこのようにフィルタリングすることは不可能だと私に言いました。それで、それは本当に不可能なのか、それとも単に複雑なのかしら。
編集:
私はと呼ばれるもう1つのテーブルを見つけましres_partner_category_rel
た。データベースのすべてのオブジェクトを表示できるOpenerp管理インターフェイスでは、そのテーブルが表示されないため、表示されませんでした。あなたはそれをデータベースを通して直接見ることができるだけです。だから私はこの「欠けている」テーブルに混乱しました:
res_partner_category_rel:
partner_id
(many2one)category_id
(many2one)