O)

Objektrelationales Mapping

Eine Schlüsselkomponente von Odoo ist die ORM-Schicht. Diese Schicht vermeidet es, das meiste SQL von Hand schreiben zu müssen, und bietet Erweiterbarkeit und Sicherheitsdienste.2 Business-Objekte werden als Python-Klassen deklariert, die das Modell erweitern und in das automatisierte Persistenzsystem integrieren.2 Modelle können konfiguriert werden, indem eine Reihe von Attributen bei ihrer Definition festgelegt werden. Das wichtigste Attribut ist _name, das erforderlich ist und den Namen für das Modell im Odoo-System definiert. Hier ist eine minimal vollständige Definition eines Modells:aus Odoo importierte Modelle Klasse MinimalModel(models.Model):   
 _name = 'test.modell': _name = 'test.modell

Onchange

Der "Onchange"-Mechanismus bietet der Client-Schnittstelle die Möglichkeit, ein Formular immer dann zu aktualisieren, wenn der Benutzer einen Wert in ein Feld eingegeben hat, ohne etwas in der Datenbank zu speichern.z.B. Angenommen, ein Modell hat drei Felder Betrag, Stückpreis und Preis, und Sie möchten den Preis auf dem Formular aktualisieren, wenn eines der anderen Felder geändert wird. Um dies zu erreichen, definieren Sie eine Methode, bei der self den Datensatz in der Formularansicht darstellt, und dekorieren Sie ihn mit onchange(), um anzugeben, für welches Feld er ausgelöst werden soll. Jede Änderung, die Sie an self vornehmen, wird auf dem Formular reflektiert. Für berechnete Felder ist ein bewertetes onchange-Verhalten eingebaut, wie man beim Spielen mit dem Sitzungsformular sehen kann: Ändern Sie die Anzahl der Sitze oder Teilnehmer, wird die Fortschrittsleiste taken_seats automatisch aktualisiert.