Overslaan naar inhoud

Het website.page Model: Odoo’s Architectuur Voor Webpagina’s Begrijpen

Uitgebreide handleiding over het paginamodel van Odoo Website voor ontwikkelaars en functionele consultants
11 maart 2026 in
Het website.page Model: Odoo’s Architectuur Voor Webpagina’s Begrijpen
Dasolo
| Nog geen reacties

Inleiding


In Odoo bepaalt een model de structuur van gegevens in de database. Alle bedrijfsinformatie — van productrecords tot webpagina’s — leeft in een model, met velden, relaties en regels die vertellen hoe die data opgeslagen en opgehaald wordt.


Voor zowel ontwikkelaars als functionele consultants is inzicht in Odoo-modellen onmisbaar. Modellen vormen de ruggengraat van Odoo: ze definiëren welke velden beschikbaar zijn, hoe records aan elkaar gelinkt zijn en waar bedrijfslogica wordt uitgevoerd.


Deze tekst zoomt in op het website.page-model. Dat model regelt statische pagina’s op een Odoo-site en is je uitgangspunt zodra je landingspagina’s maakt, inhoud beheert of externe systemen koppelt.

Wat is het website.page-model


Het website.page-model staat voor statische websitepagina’s in de Website-app van Odoo. Typische voorbeelden zijn 'Over ons', 'Contact' of op maat gemaakte landingspagina’s die je aanmaakt via de websitebouwer.


Technisch gezien gebruikt website.page Odoo-erfenismechanismen: records linken aan ir.ui.view via _inherits. De inhoud en de QWeb-template (arch) worden in de gekoppelde ir.ui.view bewaard, samen met metadata zoals de key.

Dynamische pagina’s, zoals productoverzichten of bloglijsten, worden op een andere manier gegenereerd en vallen niet onder hetzelfde opslagpatroon.


Kort gezegd: website.page is bedoeld voor handmatig aangemaakte, statische content die je via de websitebouwer bewerkt — niet voor automatisch gegenereerde lijsten of catalogi.

Belangrijkste velden in het model


Hieronder vind je de belangrijkste velden van het website.page-model. Kennis van deze velden maakt werken met websitepagina’s veel eenvoudiger en voorkomt fouten bij publicatie of SEO.


1. name

Type: Char. De titel van de pagina. Deze verschijnt in tabbladen, menu’s en zoekresultaten en komt uit de gekoppelde ir.ui.view.


2. url

Type: Char. Het URL-pad van de pagina; begint altijd met een schuine streep (/). Voorbeelden: /contact, /over-ons. Dit is het pad dat bezoekers gebruiken om de pagina te bereiken.


3. view_id

Type: Many2one (ir.ui.view). Verplicht. Verwijst naar de QWeb-view die de inhoud bevat. De view bewaart de arch (XML-template) en key; bij verwijderen van de view gaat de pagina mee.


4. website_id

Type: Many2one (website). Geeft aan tot welke website de pagina behoort. In multi-site-omgevingen maak je pagina’s per website of laat je ze gedeeld (leeg) staan.


5. is_published

Type: Boolean. Geeft aan of de pagina voor bezoekers zichtbaar is. Een niet-gepubliceerde pagina leidt doorgaans tot 404 of redirect — handig om tijdelijk te verbergen zonder te verwijderen.


6. website_indexed

Type: Boolean. Bepaalt of zoekmachines de pagina mogen indexeren. Zet False voor bedankpagina’s of interne content die niet in zoekresultaten thuishoort.


7. date_publish

Type: Datetime. Publicatiedatum van de pagina. Wordt gebruikt voor planning en om aan te geven wanneer content live ging.


8. header_visible

Type: Boolean. Bepaalt of de site-header zichtbaar is. Handig voor landingspagina’s of full-screen layouts waar je de header wilt verbergen.


9. footer_visible

Type: Boolean. Bepaalt of de footer getoond wordt. Net als header_visible maakt dit het mogelijk pagina’s zonder standaard footer te maken.


10. is_homepage

Type: Boolean. Computed-veld. Waar wanneer deze pagina als startpagina van de website is ingesteld. Per website kan slechts één pagina de homepage zijn.


11. is_visible

Type: Boolean. Computed. Geeft aan of de pagina zichtbaar is op basis van publicatiestatus, datum en zichtbaarheidsregels.


12. menu_ids

Type: One2many (website.menu). De menu-items die naar deze pagina linken. Een pagina kan in meerdere menu’s voorkomen of in geen enkel menu.


13. create_date

Type: Datetime. Aanmaakdatum van het record. Wordt automatisch door Odoo beheerd en is nuttig voor audit en rapportage.


14. write_date

Type: Datetime. Laatste wijzigingsdatum. Ook automatisch en helpt bij het volgen van contentupdates.


15. arch

Type: Text. De QWeb XML-template zelf, opgeslagen in de gekoppelde ir.ui.view. Bevat HTML-structuur en Odoo-snippets; bewerkbaar via de websitebouwer.


16. key

Type: Char. Unieke identifier voor de view, gebruikt in module-XML en bij inheritance. Vorm meestal module.view_name.


17. type

Type: Selection. Het view-type. Voor websitepagina’s is dit qweb. Andere types zijn form, list, tree enzovoort.


18. active

Type: Boolean. Soft-delete vlag afkomstig van ir.ui.view. Wanneer False is het record gearchiveerd en worden pagina’s niet meer geserveerd.


19. website_meta_title

Type: Char. SEO-meta title. Overschrijft de standaardtitel in zoekresultaten en is belangrijk voor vindbaarheid.


20. website_meta_description

Type: Text. SEO-meta description. De tekst die in zoekresultaten verschijnt — idealiter tussen 150 en 160 tekens voor optimale weergave.


21. website_meta_keywords

Type: Char. Meta keywords. Minder relevant voor moderne SEO maar soms nog in gebruik; scheid woorden met komma’s.


22. header_overlay

Type: Boolean. Of de header over de inhoud valt, gebruikt bij hero-achtige banners waarbij de header bovenop staat.


23. header_color

Type: Selection. Kleur of stijl van de header (bijv. transparent, light, dark). Beïnvloedt contrast en leesbaarheid van de koptekst op de pagina.


24. visibility

Type: Selection. Toegangscontrole: Public, Signed In, Restricted Group of With Password. Bepaalt wie de pagina kan bekijken.


25. redirect_type

Type: Selection. Bepaalt welk soort redirect gebruikt wordt bij URL-wijziging: 301 (permanent), 302 (tijdelijk) of geen. Belangrijk voor SEO wanneer je URL’s verhuist.

Hoe dit model in bedrijfsprocessen wordt gebruikt


1. Landingspagina’s en campagnes

Marketingteams bouwen landingspagina’s voor campagnes; elke landingspagina is een website.page-record. URL, content en publicatiedatum worden er beheerd — scheduled publishing draait op date_publish.


2. Bedrijfspagina’s

Pagina’s zoals Over ons, Contact, Voorwaarden en Privacy zijn klassieke website.page-records. Ze worden eenmaal aangemaakt en periodiek bijgewerkt; menu-positie regelt menu_ids.


3. Bedankt- en bevestigingspagina’s

Pagina’s als 'Contactformulier verzonden' zijn ook website.page-records. Zet website_indexed op False, zodat ze niet in zoekmachines verschijnen en je SEO niet verwatert.


4. Multi-site en lokalisatie

In omgevingen met meerdere websites bepaalt website_id op welke site de pagina zichtbaar is. Voor lokale versies dupliceer je de pagina per website met vertaalde content.


5. Afgeschermde content en beperkte toegang

Met het visibility-veld maak je pagina’s enkel voor ingelogde gebruikers of specifieke groepen — ideaal voor ledenzones en interne documentatie.

Hoe ontwikkelaars het model uitbreiden


Ontwikkelaars breiden website.page uit met verschillende technieken; Odoo-erfenis is daarbij het belangrijkste instrument.


Modelerfenis

Gebruik _inherit = 'website.page' om het model uit te breiden. Voeg velden toe, override methodes of leg extra constraints vast. Door uitbreidingen in aparte modules te houden blijft updaten eenvoudiger.


Velden toevoegen

Definieer nieuwe velden in je geërfde model met het juiste type: Char, Many2one, Boolean, Integer, Text of Selection. Houd rekening met website-afhankelijke velden bij multi-siteimplementaties.


Python-extensies

Overschrijf create, write of unlink om extra logica in te bouwen, en gebruik super() om de originele flow te respecteren. Let op de view_id-relatie: verwijderen kan cascaderen naar de view.


Odoo Studio

Odoo Studio biedt snelle, codevrije aanpassingen aan pagina’s — handig voor lay-outtaken. Voor complexe logica of API-gestuurde content verdient een custom module de voorkeur vanwege betere onderhoudbaarheid.

Aanbevelingen en praktische tips


  • Gebruik URL’s die vriendelijk zijn voor mensen en zoekmachines: geen spaties, vermijd vreemde tekens en verbind woorden met streepjes.
  • Zet website_indexed op False voor bedankpagina’s, bevestigingspagina’s en interne documenten zodat ze niet in zoekmachines terechtkomen.
  • Bij wijziging van URL’s: configureer redirects (301 of 302) om SEO-waarde te behouden en gebroken links te voorkomen.
  • Vul voor elke publieke pagina website_meta_title en website_meta_description in. Goede meta’s helpen je vindbaarheid en click-through rates in zoekmachines.
  • Als je pagina’s via API of XML-RPC aanmaakt: maak eerst de ir.ui.view aan, geef die type qweb en een unieke key, en maak daarna de website.page aan met view_id naar die view.

Veelvoorkomende fouten en hoe ze te vermijden


  • Een website.page aanmaken zonder een geldige view_id mislukt. De view moet bestaan en het type qweb hebben.
  • Gebruik altijd URL-paden die beginnen met een schuine streep (/). Odoo verwacht paden als /contact, niet contact.
  • Vergeet niet website_indexed uit te schakelen voor bedankpagina’s; anders duiken ze onbedoeld in zoekresultaten op.
  • Wijzig je een paginapad zonder redirect in te stellen, dan breken oude links en verliezen zoekmachines de oude ranking van die pagina.
  • Pas op bij het aanpassen van de arch van een view die bewerkt werd met de websitebouwer: de noupdate-vlag in ir.model.data kan je XML-wijzigingen blokkeren. Reset die vlag waar nodig.

Slotwoord


Het website.page-model is de kern voor het beheer van statische pagina’s in Odoo. Het bewaart metadata, URL’s en publicatie-instellingen, terwijl de daadwerkelijke HTML- en QWeb-inhoud in de gekoppelde ir.ui.view zit.


Als je de belangrijkste velden begrijpt en weet hoe website.page van ir.ui.view erft, kun je websites in Odoo beter configureren, aanpassen en koppelen. Zowel functionele consultants als ontwikkelaars besparen tijd en maken minder fouten met die kennis.

Hulp nodig met je Odoo-implementatie?


Dasolo ondersteunt bedrijven bij implementatie, maatwerk en optimalisatie van Odoo. We specialiseren ons in API-integraties en Odoo-ontwikkeling, en kennen de datalaag en modellen zoals website.page door en door.


Heb je hulp nodig bij een Odoo-implementatie, maatwerk voor websitepagina’s of integraties? We ondersteunen je graag. Plan een demo om je project te bespreken.

Het website.page Model: Odoo’s Architectuur Voor Webpagina’s Begrijpen
Dasolo 11 maart 2026
Deel deze post
Aanmelden om een reactie achter te laten