私はOdoo 10のカスタマイズされたモジュールに関連した同様の問題を抱えていました。私はかなり徹底的な研究を行い、Odoo ORMはおそらくそうではないはずのものをやっています。整理するのに十分です。
Odoo 10 ORM API Documentationのモデルとフィールドの作成に関するセクションは役に立ちましたが、ORMに関するドキュメントは厳しくなく、場合によっては間違っています。
モデルのカスタムメソッドで利用可能なself.env.cr
psycopg2 cursorで挿入を手動で行うことで、最終的に修正しました。
from odoo import models
class your_class(models.Model):
def custom_create_method(self):
self.env.cr.execute("""
INSERT INTO customer_model_name
(name, value, other_value)
VALUES
('{}', '{}', '{}')
RETURNING id;
""")
new_id = self.env.cr.fetchone()
このようになります
は、あなたがそのように注意する必要がありますので、あなたのコードにSQLインジェクション攻撃の可能性を導入するという欠点があります。
これは間違いなく理想的な解決策ですが、機能します。私は問題がOdoo ORMの計算フィールドの処理に関連していると信じていますが、これは実際に起こっていることではありません。
これが役に立ちます。
問題解決のための解決策を見つけましたか? – Cherif