データモデル
connector は Odoo モデルをリレーショナルテーブルおよびビューとして表示します。テーブル定義は、接続先のOdoo サイトから動的に取得されます。実際に利用可能なものは、インストールしたアプリに応じて異なります。ここにリストされているテーブルは例です。実際に利用可能なものとは異なる場合があります。
テーブル
接続する際、connector はどのモデルを変更できるか、どのモデルが読み取り専用かを決定します。変更が可能なモデルはテーブルとして表示され、データの読み出し、挿入、更新、および削除がサポートされています。
ビュー
読み取り専用のモデルはビューとして表示されます。テーブルと同じようにデータを読み出すことができますが、挿入、更新、削除は許可されていません。
Many2One、One2Many、Many2Many カラム
Odoo の中には、テキストや日付などの単純な値を持つカラムに加え、各行に複数の値を含むカラムもあります。connector は、値があるカラムの種類に応じて、これらの種類の値を異なる方法でデコードします。
Many2One
Many2One カラムは、別のモデル内の単一の行への参照です。connector 内では、Many2One カラムは整数として表わされます。その値は他のモデルで参照されるID です。例えば、Calendar モジュールには"calendar_event" というイベントのモデルが含まれています。このモデルには、"crm_lead" モデルの商談を参照する"opportunity_id" というカラムがあります。カレンダーイベントを作成または更新するときは、opportunity_id をミーティングを行うリードのID に設定できます。
INSERT INTO calendar_event (name, start, stop, opportunity_id) VALUES ('Meet With Potential Customer', '...', '...', 42)
このイベントを後で読む場合、opportunity_id の値は42 となります。
Many2Many
Many2Many カラムは、別のモデル内の複数の行への参照です。connector 内では、Many2Many カラムはカンマ区切りの整数のリストを含むテキストとして表されます。そのリストの各値は、参照されている行のID です。例えば、Calendar モジュールには"calendar_event" というイベントのモデルが含まれています。このモデルには、"res_partner" モデルの連絡先を参照する"partner_ids" というカラムがあります。カレンダーイベントを作成または更新するときは、partner_ids をミーティングの出席者のID に設定できます。
INSERT INTO calendar_event (name, start, stop, partner_ids) VALUES ('Meet With Potential Customer', '...', '...', '13,57')
このイベントを後で読む場合、partner_ids の値はテキスト"13,57"(もしくは、ID は順不同のため"57,13")となります。
One2Many
Many2Many カラムは、別のモデル内の複数の行への参照です。Many2Many カラムに似ていますが、参照モデルの各行はメインモデルの1つにのみ属していなければなりません。例えば、Calendar モジュールには"calendar_event" というイベントのモデルが含まれています。このモデルには、"event_attendee" モデルに格納されている会議出席依頼を参照する"attendee_ids" というカラムがあります。partner_ids とは異なり、異なるミーティングで同じパートナーを共有でき、異なるパートナーが同じミーティングに参加できる場合、各出席依頼は1つのイベントにのみリンクされます。
現在、これらのカラムはMany2Many カラムと同じように(カンマ区切りのID リストを含むテキストとして)読み出されますが、書き込むことはできません。