Zum Inhalt springen

Integer-Feld in Odoo: Der Ultimative Leitfaden

Alles, was Sie über das Integer-Feld im Odoo-Datenmodell wissen müssen, von der geschäftlichen Nutzung bis zur technischen Anpassung
6. März 2026 durch
Integer-Feld in Odoo: Der Ultimative Leitfaden
Dasolo
| Noch keine Kommentare

Einführung


Wenn Sie jemals eine Menge in einem Verkaufsauftrag festgelegt, verfolgt haben, wie viele Tage eine Aufgabe offen war, oder eine Prioritätsbewertung für einen Lead konfiguriert haben, haben Sie ein Integer-Feld in Odoo verwendet. Es ist einer der häufigsten Feldtypen im Odoo-Datenmodell und wird dennoch oft unterschätzt.


Zu verstehen, wie das Integer-Feld funktioniert, ist wichtig für Geschäftsanwender, die Formulare konfigurieren, für Entwickler, die benutzerdefinierte Module schreiben, und für Berater, die Datenmodelle für ihre Kunden entwerfen.


Dieser Leitfaden behandelt, was das Integer-Feld speichert, wie es sich im Odoo-Framework und in der Benutzeroberfläche verhält, wie man es mit Odoo Studio oder Python erstellt oder anpasst, sowie praktische Anwendungsfälle und Dinge, auf die man achten sollte.

Was ist das Integer-Feld in Odoo


Im Odoo ORM ist das Integer-Feld dafür ausgelegt, ganze Zahlen zu speichern. Keine Dezimalstellen, keine Brüche. Es wird direkt einer INTEGER-Spalte in PostgreSQL zugeordnet, die eine 4-Byte signierte Ganzzahl unterstützt, die Werte von ungefähr -2 Milliarden bis +2 Milliarden umfasst.


Aus der Sicht des Benutzers erscheint ein Integer-Feld als einfache numerische Eingabe in Formularen und als Zahlen-Spalte in Listenansichten. Es ist die richtige Wahl für alles, was in ganzen Einheiten gezählt werden muss: Mengen, Punkte, Zeitdauern in Tagen, Sequenznummern oder jede Metrik, bei der eine halbe Einheit keinen Sinn macht.


Hier ist eine typische Definition in einem Python-Modul:

from odoo import fields, models

class ProjectTask(models.Model):
    _inherit = 'project.task'

    estimated_hours = fields.Integer(
        string='Estimated Hours',
        default=0,
    )

Der string-Parameter steuert das Label, das in der Benutzeroberfläche angezeigt wird. Der default-Parameter legt den Wert automatisch fest, wenn ein neuer Datensatz erstellt wird.


In Odoo Studio wird dieser Feldtyp einfach als Integer aufgeführt. Wenn er über Studio erstellt wird, erhält er ein x_studio_-Präfix. Wenn er über Python oder die XML-RPC-API erstellt wird, wählen Sie den technischen Namen selbst.

Wie das Feld funktioniert


Wenn Sie ein Integer-Feld in Odoo definieren, erstellt das Framework automatisch die entsprechende Datenbankspalte während der Installation oder Aktualisierung des Moduls. Sie müssen keine SQL-Migrationen manuell schreiben.


Auf Datenbankebene ist die Spalte als INTEGER in PostgreSQL typisiert. Das Odoo ORM kümmert sich um die Typumwandlung, sodass, wenn der Benutzer nichts eingibt, das Feld 0 zurückgibt, anstatt None oder False. Dies ist ein wichtiger Unterschied im Vergleich zu anderen Feldtypen wie Float oder Char, die False zurückgeben können, wenn sie leer sind.


Wichtige Feldattribute

Hier sind die wichtigsten Eigenschaften, die Sie für ein Integer-Feld konfigurieren können:

  • string: Das Label, das den Benutzern in der Benutzeroberfläche angezeigt wird.
  • default: Der Wert, der neuen Datensätzen automatisch zugewiesen wird. Standardmäßig 0, wenn nicht angegeben.
  • required: Macht das Feld obligatorisch. Da der Standard bereits 0 ist, ist dies besonders nützlich, wenn Sie das Speichern mit einem Nullwert blockieren möchten.
  • readonly: Verhindert, dass Benutzer den Wert direkt in der Benutzeroberfläche bearbeiten.
  • index: Erstellt einen PostgreSQL-Index auf der Spalte, wodurch Filter und Suchen auf diesem Feld beschleunigt werden.
  • compute: Verknüpft eine Python-Methode, die den Feldwert dynamisch aus anderen Feldern berechnet.
  • store: In Kombination mit compute steuert, ob der berechnete Wert in der Datenbank gespeichert oder zur Laufzeit neu berechnet wird.
  • copy: Steuert, ob der Wert beim Duplizieren eines Datensatzes übernommen wird.
  • groups: Beschränkt die Sichtbarkeit des Feldes auf bestimmte Benutzergruppen.

Wie es in Ansichten erscheint

In Formularansichten wird ein Integer-Feld als numerisches Eingabefeld dargestellt. Odoo fügt automatisch Tausendertrennzeichen für die Lesbarkeit hinzu, wenn größere Zahlen angezeigt werden.


In Listenansichten erscheinen Integer-Felder als einfache Zahlen, konventionell rechtsbündig ausgerichtet. In Suchansichten unterstützen sie Filter für gleich, größer als und kleiner als.


Sie können ein Integer-Feld mit bestimmten Widgets in Ansichten kombinieren, um das Aussehen zu ändern. Das priority-Widget verwandelt beispielsweise ein Integer-Feld in klickbare Sterne. Das progressbar-Widget kann einen Integer-Wert als Fortschrittsbalken anzeigen, wenn es mit einem Maximalwert kombiniert wird.


Interaktion mit dem Odoo ORM

Aus der Perspektive eines Entwicklers ist das Lesen und Schreiben von Integer-Feldern unkompliziert. Der Wert ist immer ein Python int. Leere Integer-Felder geben 0 zurück, was bedeutet, dass Sie vorsichtig sein sollten, wenn Sie Bedingungen schreiben, die auf das Fehlen eines Wertes prüfen. Eine Null und ein leeres Feld sehen gleich aus, es sei denn, Sie gestalten es entsprechend.


Integer-Felder funktionieren auch natürlich in berechneten Feldern und in Domainfiltern, die von Ansichten, Serveraktionen und automatisierten Aktionen im gesamten Odoo-Framework verwendet werden.

Geschäftliche Anwendungsfälle


Das Integer-Feld taucht in fast jedem Modul in Odoo auf. Hier sind fünf praktische Szenarien, in denen es eine zentrale Rolle spielt.


1. CRM: Lead-Bewertung

Vertriebsteams möchten oft Leads basierend auf einer Bewertung priorisieren. Sie können ein benutzerdefiniertes Integer-Feld namens Lead-Bewertung im CRM-Opportunity-Modell hinzufügen. Vertriebsmitarbeiter aktualisieren die Bewertung manuell oder eine automatisierte Aktion berechnet sie basierend auf Kriterien wie Unternehmensgröße, Budget oder Engagement-Level.

Das erleichtert es, Ihre Pipeline nach Bewertung zu sortieren und sich auf die vielversprechendsten Möglichkeiten zu konzentrieren.


2. Vertrieb: Mindestbestellmengen

In den Modulen Vertrieb und Lagerverwaltung steuern Integer-Felder die Mindestbestellmengen für Produkte oder Preislisten. Das Festlegen eines Minimums von 10 Einheiten für ein Produkt stellt sicher, dass das System Bestellungen unterhalb dieser Schwelle blockiert, was späteren Hin und Her mit Kunden erspart.


3. Lagerverwaltung: Nachbestellregeln

Nachbestellregeln in Odoo basieren vollständig auf Integer-Feldern für Mindest- und Höchstbestandsgrenzen. Wenn der Bestand unter das Minimum fällt, löst Odoo automatisch eine Nachbestellung bis zur definierten Höchstgrenze aus. Diese Werte richtig zu setzen, ist entscheidend, um sowohl Engpässe als auch Überbestände zu vermeiden.


4. Projektmanagement: Story-Punkte und Aufwandsschätzungen

Teams, die Odoo Project für agile Arbeitsabläufe verwenden, fügen häufig ein benutzerdefiniertes Integer-Feld für Story-Punkte oder geschätzte Stunden hinzu. Dieses Feld erscheint in Aufgaben in der Kanban- oder Listenansicht und hilft dem Team, die Kapazität und Geschwindigkeit über Sprints hinweg zu verfolgen.


5. Buchhaltung: Zahlungsbedingungen Tage

Zahlungsbedingungen in Odoo Buchhaltung verwenden Ganzzahlfelder, um die Anzahl der Tage zu definieren, die für die Zahlung erlaubt sind. Net 30, Net 60 oder benutzerdefinierte Bedingungen werden alle über Ganzzahlen konfiguriert. Diese Werte fließen direkt in die Berechnungen des Fälligkeitsdatums der Rechnungen ein, was die Genauigkeit hier wichtig für das Cashflow-Management macht.

Erstellen oder Anpassen des Integer-Feldes


Es gibt zwei Hauptwege, um ein Ganzzahlfeld zu einem Odoo-Modell hinzuzufügen: entweder mit Odoo Studio ohne Programmierung oder direkt in Python für mehr Kontrolle.


Odoo Studio verwenden

Odoo Studio ist das No-Code- und Low-Code-Tool, das in Odoo integriert ist, um Felder und Ansichten anzupassen. Um ein Ganzzahlfeld über Studio hinzuzufügen:

  1. Öffnen Sie das Formular, in dem Sie das Feld hinzufügen möchten.
  2. Aktivieren Sie Studio im Menü oben rechts.
  3. Ziehen Sie den Feldtyp Integer aus der linken Feldliste auf Ihr Formular.
  4. Legen Sie das Feldlabel fest, wählen Sie aus, ob es erforderlich ist, und konfigurieren Sie den Standardwert.
  5. Speichern Sie und verlassen Sie Studio.

Studio erstellt das Feld automatisch mit einem x_studio_-Präfix und speichert die Definition in ir.model.fields. Das Feld ist sofort in Formularen und Listenansichten verfügbar.


Python verwenden (Technische Anpassung)

Für Entwickler, die benutzerdefinierte Module erstellen oder Odoo-Entwicklung mit mehr Kontrolle durchführen, wird das Integer-Feld direkt in einer Python-Modellklasse definiert:


from odoo import fields, models

class CrmLead(models.Model):
    _inherit = 'crm.lead'

    x_lead_score = fields.Integer(
        string='Lead Score',
        default=0,
        index=True,
        help='Punktzahl von 0 bis 100, die zur Priorisierung von Chancen verwendet wird',
    )

Nachdem das Feld im Code definiert wurde, führen Sie odoo-bin -u your_module aus, um die Änderungen in der Datenbank anzuwenden. Die Spalte wird automatisch erstellt.


Verwendung der XML-RPC-API

Sie können auch ein Integer-Feld remote über die Odoo XML-RPC-API erstellen. Dies ist nützlich für automatisierte Bereitstellungen oder wenn Sie ohne direkten Serverzugang arbeiten:


field_id = models.execute_kw(
    ODOO_DB, uid, ODOO_API_KEY,
    'ir.model.fields', 'create',
    [{
        'name': 'x_lead_score',
        'field_description': 'Lead Score',
        'model_id': crm_lead_model_id,
        'ttype': 'integer',
        'state': 'manual',
    }]
)

Der ttype-Wert für Integer-Felder ist einfach 'integer'. Der state muss 'manual' sein, um ein benutzerdefiniertes Feld anzuzeigen, das nicht von einem Modul definiert wurde.


Hinzufügen eines berechneten Integer-Feldes

Berechnete Integer-Felder sind leistungsstark, um Werte automatisch abzuleiten. Zum Beispiel, um die Anzahl der Aufgaben zu zählen, die mit einem Projekt verknüpft sind:


class Project(models.Model):
    _inherit = 'project.project'

    open_task_count = fields.Integer(
        string='Offene Aufgaben',
        compute='_compute_open_task_count',
        store=True,
    )

    def _compute_open_task_count(self):
        for project in self:
            project.open_task_count = self.env['project.task'].search_count([
                ('project_id', '=', project.id),
                ('stage_id.fold', '=', False),
            ])

Das Setzen von store=True speichert den Wert in der Datenbank, wodurch er für Filterung und Sortierung in Listenansichten verfügbar ist, ohne ihn jedes Mal neu berechnen zu müssen.

Best Practices


Hier sind praktische Tipps, um das Beste aus Integer-Feldern in Ihrem Odoo-Datenmodell herauszuholen.


Verwenden Sie Integer für Zählungen und Ganzzahlmengen

Wählen Sie Integer, wenn der Wert immer eine ganze Zahl sein muss und Dezimalzahlen keinen Sinn ergeben würden. Für alles, was Geld, Maße oder Mengen betrifft, die bruchteilhaft sein können, verwenden Sie stattdessen den Float- oder Monetary-Feldtyp.


Setzen Sie einen sinnvollen Standardwert

Integer-Felder haben in Odoo standardmäßig 0. In vielen Fällen ist das in Ordnung, aber überlegen Sie, ob Null ein bedeutungsvoller Wert für Ihren Anwendungsfall ist. Wenn Null etwas Bestimmtes bedeutet (wie z.B. noch keine Punktzahl zugewiesen), möchten Sie das möglicherweise explizit in Ihrer Geschäftslogik behandeln oder ein Hilfs-Boolesches Feld hinzufügen, um zu verfolgen, ob der Wert gesetzt wurde.


Fügen Sie einen Index hinzu, wenn Sie das Feld filtern

Wenn Sie planen, häufig nach einem Integer-Feld zu filtern, zu sortieren oder zu gruppieren, fügen Sie index=True in der Felddefinition hinzu. Dies erstellt einen Datenbankindex und kann die Abfragen auf großen Datensätzen erheblich beschleunigen. Der Nachteil ist ein kleiner Anstieg des Speicherplatzes und der Schreibzeit, was für Felder, die in Suchbedingungen verwendet werden, fast immer gerechtfertigt ist.


Verwenden Sie store=True für berechnete Integer-Felder

Wenn Sie ein berechnetes Integer-Feld definieren, das Benutzer in Listenansichten filtern oder sortieren müssen, setzen Sie immer store=True. Ohne dies kann Odoo das Feld nicht in Domain-Filtern verwenden, und das Gruppieren danach funktioniert nicht wie erwartet.


Dokumentieren Sie Ihre Bereiche

Wenn ein Integer-Feld einen bedeutungsvollen Bereich hat, wie eine Punktzahl von 0 bis 100, dokumentieren Sie das im help-Parameter. Dieser Text erscheint als Tooltip in der Benutzeroberfläche und erspart den Benutzern das Rätseln, welche Werte gültig sind.


Überlegen Sie es sich gut, bevor Sie Integer für IDs oder Referenzen verwenden

Wenn Sie auf einen anderen Datensatz verweisen müssen, verwenden Sie stattdessen ein Many2one-Feld, anstatt eine ID manuell in einem Integer-Feld zu speichern. Many2one-Felder bieten Ihnen integrierte Navigation, kaskadierende Regeln und eine ordnungsgemäße ORM-Integration. Ein Integer, der eine rohe ID hält, ist fragil und umgeht das Odoo-Framework.

Häufige Fallstricke


Dies sind die häufigsten Fehler, die beim Arbeiten mit Integer-Feldern in Odoo auftreten.


Verwechslung von Integer mit Float

Ein häufiger Fehler ist die Verwendung eines Integer-Feldes, wo ein Float-Feld angemessener wäre. Wenn Ihre Benutzer jemals 1,5, 0,25 oder einen anderen Bruchwert eingeben müssen, ist Integer die falsche Wahl. Odoo wird dezimale Eingaben stillschweigend abschneiden, was zu Datenverlust und Verwirrung bei den Benutzern führt. Verwenden Sie Float für Mengen, die bruchteilhaft sein können, und Monetary für Währungswerte.


Annahme, dass Null Leer bedeutet

Da Integer-Felder immer 0 zurückgeben, wenn sie nicht gesetzt sind, gibt es keine Möglichkeit, zwischen einem Datensatz zu unterscheiden, bei dem das Feld nie ausgefüllt wurde, und einem, bei dem jemand absichtlich Null eingegeben hat. Wenn diese Unterscheidung für Ihren Workflow wichtig ist, fügen Sie ein Boolean-Feld wie has_score neben dem Integer hinzu oder verwenden Sie ein Float-Feld mit einem False Standardwert.


Nicht hinzufügen eines Index auf häufig gefilterte Felder

Wenn Sie ein Integer-Feld hinzufügen und es später als Filter in Ansichten oder automatisierten Aktionen verwenden, kann das Vergessen, index=True hinzuzufügen, die Listenansichten in größeren Datenbanken merklich verlangsamen. Es ist einfacher, den Index von Anfang an hinzuzufügen, als später zu optimieren.


Verwendung von Integer zur Speicherung von dezimalbasierten Verhältnissen

Manchmal speichern Entwickler Prozentsätze als Integer-Felder und schreiben 75, um 75 % zu bedeuten. Das funktioniert, bis jemand 72,5 % benötigt, an dem Punkt bricht das Feld die Anforderung. Wenn es irgendeine Chance gibt, dass ein Prozentsatz oder Verhältnis dezimale Präzision benötigt, verwenden Sie von Anfang an Float.


Vergessen von store=True bei berechneten Feldern, die in Filtern verwendet werden

Dies ist einer der häufigsten Fehler in der Odoo-Entwicklung. Ein berechnetes Integer-Feld ohne store=True kann nicht in Domain-Filtern, automatisierten Aktionen oder Gruppierungsoperationen in Listenansichten verwendet werden. Denken Sie immer daran, wo das Feld verwendet wird, bevor Sie entscheiden, ob Sie es speichern möchten.

Fazit


Das Integer-Feld ist ein grundlegendes Baustein im Odoo-Datenmodell. Es sieht einfach aus, und in den meisten Fällen ist es das auch. Aber das Wissen um seine spezifischen Verhaltensweisen, wie die Tatsache, dass leere Felder 0 zurückgeben und berechnete Felder store=True benötigen, um in Filtern zu funktionieren, hilft Ihnen, die Art von Fehlern und Designproblemen zu vermeiden, die leicht eingeführt und später schwer zu beheben sind.


Egal, ob Sie Odoo für ein Verkaufsteam konfigurieren, ein benutzerdefiniertes Modul erstellen oder Nachbestellregeln für ein Lager entwerfen, Integer-Felder werden bei jedem Schritt auftauchen. Zu verstehen, wie sie im Odoo ORM funktionieren, wie man sie mit Studio oder Python erstellt und wann man sie im Vergleich zu Float oder Monetary verwendet, ist Teil dessen, was eine Odoo-Implementierung solide und wartbar macht.


Wenn Sie an einer Odoo-Anpassung arbeiten und sicherstellen möchten, dass Ihr Datenmodell von Anfang an richtig aufgebaut ist, zahlt sich dieses grundlegende Wissen während der gesamten Lebensdauer des Projekts aus.

Arbeiten Sie mit einem Odoo-Experten


Bei Dasolo helfen wir Unternehmen, Odoo in allen Modulen und Branchen zu implementieren, anzupassen und zu optimieren. Egal, ob Sie ein sauberes Datenmodell entwerfen, benutzerdefinierte Felder und Workflows erstellen oder Odoo über die API mit externen Systemen verbinden müssen, wir bringen die Erfahrung mit, um es richtig zu machen.


Wenn Sie Fragen zu Ihrer Odoo-Konfiguration haben oder ein Projekt besprechen möchten, kontaktieren Sie unser Team. Wir helfen Ihnen gerne weiter.

Integer-Feld in Odoo: Der Ultimative Leitfaden
Dasolo 6. März 2026
Diesen Beitrag teilen
Anmelden , um einen Kommentar zu hinterlassen