2017-03-21 3 views
1

mymodule.contactsのカスタムモデルがres.partnerから継承されています。私はmymodule.contactsに他のOdooモジュール、、sans、私の余分なフィールド、つまりres.partnerから継承している私のモデルのフィールドは、おそらく他のOdooで見える唯一のものですモデルとそれは問題ありません。たとえば、請求書モジュールではres.partnerモデルが使用されます。私のモデルはres.partnerから継承しています。しかし、Odooは私のモデルをPostgresの新しいテーブルとして作成しなければならないので、res.partnerを継承しているにもかかわらず、私のカスタムモデルの私の連絡先データはInvoicesモジュールに表示されません。実際のデータは異なるPostgres表。私の前提は正しいですか?私のモデルがres.partnerから継承する場合、そのデータはCRMなどのres.partnerを使用するモジュールで表示されます

答えて

1

本当にあなたがやっている継承の種類によります。あなたはres.partnerモデルに新しいフィールドを追加するには

_inherit = res.partner

でシンプルな継承を行う場合は、[はい新しいフィールドが一方res.partner

へのリンクを持つすべてのモデルに利用できるようになりますあなたは

_inherits = res.partner

で多型の継承を行うそれとも、_name継承しながら、Nを指定しますポストグルで古いモデルの属性を持つewテーブルが作成され、新しいフィールドはres.partnerを継承する他のモデルでは使用できなくなります。

あなたが本当に探しているのは_inheritsだと思います。新しいテーブルが作成されます。 res.partnerのデフォルトデータはまだそのテーブルに保存されますが、新しいデータは指定した新しいテーブルに保存されるため、追加した新しいフィールドを他のモデルが知ることはありません。

ここでは、Odooの継承の種類について、大きな視覚化があります。

https://www.odoo.com/forum/how-to/developers-13/whats-the-difference-between-inherit-and-inherits-52205

0

モデルを継承すると、その特性を得るだけでモデルを構築できます。継承されたモデルまたは他のモデルは、そのモデルが接続されている場合を除いて、そのモデルの可視性を持ちません。拡張モデルに追加する余分なフィールドは、many2one、one2many、またはmany2manyフィールドに接続しないかぎり、他のモデルには表示されません。

関連する問題