Einführung
In Odoo definieren Modelle, wie Daten strukturiert und in der Datenbank gespeichert werden. Jedes Stück Geschäftsdaten, mit dem Sie arbeiten, lebt in einem Modell.
Das Verständnis von Odoo-Modellen ist sowohl für Entwickler als auch für funktionale Berater unerlässlich. Modelle sind die Grundlage der Odoo-Datenarchitektur. Sie definieren Odoo-Felder, Beziehungen und Geschäftslogik.
Dieser Artikel konzentriert sich auf das website.page Modell. Es steuert statische Seiten auf Ihrer Odoo-Website. Egal, ob Sie benutzerdefinierte Landing Pages erstellen, Inhalte verwalten oder mit externen Systemen integrieren, Sie werden mit diesem Modell arbeiten.
Was ist das website.page Modell
Das website.page-Modell repräsentiert statische Webseiten in Odoo. Es ist Teil der Website-App und speichert Seiten, die Sie manuell erstellen, wie z.B. Über uns, Kontakt oder benutzerdefinierte Landingpages.
Dieses Modell in Odoo verwendet die Odoo-Modellvererbung. Es erbt von ir.ui.view über den _inherits-Mechanismus. Jeder website.page-Datensatz verweist auf eine ir.ui.view, die die QWeb-Vorlage (arch) und Metadaten enthält.
Dynamische Seiten, wie die Shop- oder Blogauflistung, werden anders generiert.
Sie werden nicht als website.page-Datensätze gespeichert. Das website.page-Modell ist speziell für statische Inhalte, die Sie über den Website-Builder erstellen und bearbeiten.
Schlüsselfelder im Modell
Hier sind die wichtigsten Odoo-Felder im website.page-Modell. Das Verständnis dieser Felder wird Ihnen helfen, effektiv mit Webseiten zu arbeiten.
1. name
Typ: Char. Dieses Feld speichert den Seitentitel. Er wird im Browser-Tab, in Menüs und in Suchergebnissen angezeigt. Er stammt von der verlinkten ir.ui.view.
2. url
Typ: Char. Der URL-Pfad der Seite. Er muss mit einem Schrägstrich beginnen. Beispiele: /contactus, /about-us. Dies ist der Pfad, den Besucher verwenden, um auf die Seite zuzugreifen.
3. view_id
Typ: Many2one (ir.ui.view). Erforderlich. Verlinkt zur QWeb-Ansicht, die den Seiteninhalt enthält. Die Ansicht hält das arch (XML-Vorlage) und den Schlüssel. Das Löschen der Ansicht wirkt sich auf die Seite aus.
4. website_id
Typ: Many2one (Website). Die Website, zu der diese Seite gehört. In Multi-Website-Setups können Seiten spezifisch für eine Website oder gemeinsam genutzt werden (wenn leer).
5. ist_veröffentlicht
Typ: Boolean. Ob die Seite für Besucher sichtbar ist. Unveröffentlichte Seiten geben 404 zurück oder leiten um. Verwenden Sie dies, um Seiten zu verbergen, ohne sie zu löschen.
6. website_indexiert
Typ: Boolean. Steuert, ob Suchmaschinen die Seite indexieren können. Setzen Sie auf False für Dankeseiten oder interne Seiten, die Sie nicht in den Suchergebnissen haben möchten.
7. datum_veröffentlichen
Typ: Datetime. Das Veröffentlichungsdatum. Wird für die geplante Veröffentlichung und zur Anzeige verwendet, wann der Inhalt live ging.
8. header_sichtbar
Typ: Boolean. Ob der Website-Header auf dieser Seite angezeigt werden soll. Nützlich für Landingpages oder Vollbild-Erlebnisse, bei denen Sie den Header ausblenden möchten.
9. footer_sichtbar
Typ: Boolean. Ob der Website-Footer angezeigt werden soll. Wie header_sichtbar ermöglicht dies, Seiten ohne den Standard-Footer zu erstellen.
10. ist_startseite
Typ: Boolean. Berechnetes Feld. Wahr, wenn diese Seite als die Homepage der Website festgelegt ist. Pro Website kann nur eine Seite die Homepage sein.
11. ist_sichtbar
Typ: Boolean. Berechnet. Gibt an, ob die Seite basierend auf dem Veröffentlichungsstatus, Datum und Sichtbarkeitsregeln sichtbar ist.
12. menü_ids
Typ: One2many (website.menu). Die Menüelemente, die mit dieser Seite verlinkt sind. Eine Seite kann in mehreren Menüs oder in keinem erscheinen.
13. erstellungsdatum
Typ: Datetime. Wann der Datensatz erstellt wurde. Automatisch von Odoo verwaltet. Nützlich für Audits und Berichterstattung.
14. änderungsdatum
Typ: Datetime. Wann der Datensatz zuletzt geändert wurde. Ebenfalls automatisch verwaltet. Hilft, Inhaltsaktualisierungen nachzuverfolgen.
15. arch
Typ: Text. Die QWeb XML-Vorlage. Auf dem verlinkten ir.ui.view gespeichert. Enthält die HTML-Struktur und Odoo-Snippets. Über den Website-Builder bearbeitbar.
16. schlüssel
Typ: Char. Eindeutiger Identifikator für die Ansicht. Wird in Modul-XML und für Vererbung verwendet. Das Format ist normalerweise modul.ansicht_name.
17. typ
Typ: Auswahl. Der Ansichtstyp. Für Webseiten ist dies immer qweb. Andere Typen sind Formular, Liste und Baum.
18. aktiv
Typ: Boolean. Soft-Delete-Flag. Wenn False, wird der Datensatz archiviert. Kommt von ir.ui.view. Archivierte Seiten werden nicht bereitgestellt.
19. website_meta_title
Typ: Char. SEO-Meta-Titel. Überschreibt den Standardtitel in den Suchergebnissen. Wichtig für die Sichtbarkeit in Suchmaschinen.
20. website_meta_description
Typ: Text. SEO-Meta-Beschreibung. Der Ausschnitt, der in den Suchmaschinenergebnissen angezeigt wird. Halten Sie es zwischen 150 und 160 Zeichen für die beste Anzeige.
21. website_meta_keywords
Typ: Char. Meta-Keywords. Weniger wichtig für modernes SEO, wird aber immer noch von einigen Systemen verwendet. Durch Kommas getrennt.
22. header_overlay
Typ: Boolean. Ob der Header den Inhalt überlagert. Wird für Hero-Style-Seiten verwendet, bei denen der Header über dem Banner sitzt.
23. header_color
Typ: Auswahl. Farbschema des Headers. Optionen wie transparent, hell oder dunkel. Beeinflusst den Kontrast und die Lesbarkeit.
24. sichtbarkeit
Typ: Auswahl. Zugriffssteuerung. Optionen sind Öffentlich, Eingeloggt, Eingeschränkte Gruppe oder Mit Passwort. Steuert, wer die Seite anzeigen kann.
25. redirect_type
Typ: Auswahl. Wenn sich die URL ändert, definiert dies die Weiterleitung: 301 permanent, 302 temporär oder keine. Wichtig für SEO beim Verschieben von Seiten.
Wie dieses Modell in Geschäftsabläufen verwendet wird
1. Landing Pages und Kampagnen
Marketing-Teams erstellen Landing Pages für Kampagnen. Jede Seite ist ein website.page-Datensatz. Sie steuern URL, Inhalt und Veröffentlichungsdatum. Geplante Veröffentlichungen verwenden date_publish.
2. Unternehmensseiten
Über uns, Kontakt, Nutzungsbedingungen und Datenschutzrichtlinie sind typischerweise website.page-Datensätze. Sie werden einmal erstellt und nach Bedarf aktualisiert. Die Menüplatzierung wird über menu_ids verwaltet.
3. Dankeschön- und Bestätigungsseiten
Seiten wie "Kontaktformular eingereicht" oder "Aufgabe erhalten" sind website.page-Datensätze. Setzen Sie website_indexed auf False, damit sie nicht in den Suchergebnissen erscheinen.
4. Mehrere Websites und Lokalisierung
In Mehrfach-Website-Setups bestimmt website_id, welche Seite angezeigt wird. Sie können Seiten pro Website mit lokalisierten Inhalten duplizieren.
5. Geschützte Inhalte und eingeschränkter Zugriff
Das Sichtbarkeitsfeld ermöglicht es Ihnen, Seiten nur für angemeldete Benutzer oder für bestimmte Gruppen zu erstellen. Nützlich für Mitgliederbereiche oder interne Dokumentationen.
Wie Entwickler dieses Modell erweitern
Entwickler erweitern website.page mit mehreren Mustern. Die Odoo-Modellvererbung ist der Hauptmechanismus.
Modellvererbung
Verwenden Sie _inherit = 'website.page', um das Modell zu erweitern. Fügen Sie neue Odoo-Felder hinzu, überschreiben Sie Methoden oder fügen Sie Einschränkungen hinzu. Das vererbte Modell in Odoo hält Ihre Änderungen in einem separaten Modul für einfache Upgrades.
Felder hinzufügen
Definieren Sie neue Odoo-Felder in Ihrem vererbten Modell. Verwenden Sie den richtigen Feldtyp: Char, Many2one, Boolean, Integer, Text, Auswahl. Berücksichtigen Sie websiteabhängige Felder für mehrere Websites.
Python-Erweiterungen
Überschreiben Sie create, write oder unlink, um Logik hinzuzufügen. Verwenden Sie super(), um das Original aufzurufen. Seien Sie vorsichtig mit der view_id-Beziehung und dem Kaskadierungsverhalten.
Odoo Studio
Odoo Studio ermöglicht es Ihnen, Seiten ohne Code anzupassen. Gut für schnelle Layoutänderungen. Für komplexe Logik oder API-gesteuerte Inhalte sind benutzerdefinierte Module wartungsfreundlicher.
Best Practices
- Verwenden Sie URL-freundliche Slugs. Vermeiden Sie Leerzeichen und Sonderzeichen. Verwenden Sie Bindestriche für die Lesbarkeit.
- Setzen Sie website_indexed auf False für Dankeseiten, Bestätigungsseiten und interne Seiten.
- Aktivieren Sie beim Ändern von URLs die Weiterleitung (301 oder 302), um den SEO-Wert zu erhalten und defekte Links zu vermeiden.
- Füllen Sie website_meta_title und website_meta_description für jede öffentliche Seite aus. Dies verbessert die SEO-Sichtbarkeit.
- Beim Erstellen von Seiten über die API oder XML-RPC erstellen Sie zuerst die ir.ui.view, dann die website.page mit view_id. Stellen Sie sicher, dass die Ansicht den Typ qweb hat und einen eindeutigen Schlüssel besitzt.
Häufige Fehler
- Erstellen einer website.page ohne gültige view_id. Die Ansicht muss existieren und den Typ qweb haben.
- Verwendung von URLs, die nicht mit einem Schrägstrich beginnen. Odoo erwartet Pfade wie /contactus, nicht contactus.
- Vergessen, website_indexed auf Dankeseiten zu setzen. Sie erscheinen in den Suchergebnissen und können die SEO verwässern.
- Ändern einer Seiten-URL, ohne eine Weiterleitung einzurichten. Alte Links brechen und Suchmaschinen verlieren die Verbindung.
- Ändern des Archivs einer Ansicht, die im Website-Builder bearbeitet wurde. Das noupdate-Flag in ir.model.data kann verhindern, dass Ihre XML-Änderungen angewendet werden. Setzen Sie es bei Bedarf zurück.
Fazit
Das website.page-Modell ist zentral für das Management statischer Seiten in Odoo. Es speichert Seitenmetadaten, URLs und Veröffentlichungseinstellungen. Der tatsächliche Inhalt befindet sich in der verlinkten ir.ui.view.
Das Verständnis seiner Felder und wie es von ir.ui.view erbt, wird Ihnen helfen, Odoo-Websites effektiv zu konfigurieren, anzupassen und zu integrieren. Egal, ob Sie ein funktionaler Berater oder ein Entwickler sind, ein solides Verständnis von website.page wird Zeit sparen und Fehler verhindern.
Brauchen Sie Hilfe bei Ihrer Odoo-Implementierung?
Dasolo hilft Unternehmen bei der Implementierung, Anpassung und Optimierung von Odoo. Wir sind auf API-Integrationen und Odoo-Entwicklung spezialisiert. Unser Team hat umfassende Erfahrung mit der Odoo-Datenarchitektur und Modellen wie website.page.
Wenn Sie Hilfe bei Ihrer Odoo-Implementierung, benutzerdefinierten Webseiten oder Integrationen benötigen, sind wir hier, um zu helfen. Buchen Sie eine Demo um Ihr Projekt zu besprechen.