Ich hatte ein ähnliches Problem im Zusammenhang mit einem benutzerdefinierten Modul in Odoo 10. Ich habe einige ziemlich gründliche Untersuchungen und die Odoo ORM macht einige Dinge, die es wahrscheinlich nicht sein sollte und dass ich nicht schlau bin genug, um zu sortieren.
Die Abschnitte in der Odoo 10 ORM API Documentation über das Erstellen von Modellen und Felder waren irgendwie hilfreich, aber die Dokumentation auf dem ORM ist sehr mangelhaft und in einigen Fällen falsch.
Ich habe es schließlich behoben, indem Sie die Einfügung manuell mit dem self.env.cr
psycopg2 cursor in den benutzerdefinierten Methoden des Modells verfügbar machen.
, dass etwas wie das Dies hat den Nachteil, daß die Einführung der Möglichkeit einer SQL-Injection-Angriff in Ihren Code
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()
aussehen würde, so dass man davon, vorsichtig zu sein brauchen.
Dies ist definitiv nicht die ideale Lösung, aber es funktioniert. Ich glaube, dass das Problem damit zusammenhängt, dass der Odoo ORM mit berechneten Feldern umgeht, aber das ist nur eine nicht wirklich richtige Vermutung darüber, was vor sich geht.
Hoffe, das hilft.
Haben Sie die Lösung für Ihr Problem gefunden? – Cherif