Introduktion
I Odoo definerer modeller, hvordan data er struktureret og gemt i databasen. Hver enkelt del af forretningsdata, du arbejder med, lever i en model.
At forstå Odoo-modeller er essentielt for både udviklere og funktionelle konsulenter. Modellerne er fundamentet for Odoo's dataarkitektur. De definerer Odoo-felter, relationer og forretningslogik.
Denne artikel fokuserer på website.page-modellen. Den driver statiske sider på din Odoo-hjemmeside. Uanset om du bygger tilpassede landingssider, administrerer indhold eller integrerer med eksterne systemer, vil du arbejde med denne model.
Hvad er website.page-modellen
Modellen website.page repræsenterer statiske webside sider i Odoo. Det er en del af Website-appen og gemmer sider, du opretter manuelt, såsom Om os, Kontakt eller brugerdefinerede landingssider.
Denne model i Odoo bruger Odoo modelarv. Den arver fra ir.ui.view via _inherits mekanismen. Hver website.page post linker til en ir.ui.view, der indeholder QWeb-skabelonen (arch) og metadata.
Dynamiske sider, som butikken eller bloglisten, genereres anderledes.
De gemmes ikke som website.page poster. Modellen website.page er specifikt til statisk indhold, du opretter og redigerer gennem websitebyggeren.
Nøglefelter i modellen
Her er de vigtigste Odoo felter i modellen website.page. At forstå disse vil hjælpe dig med at arbejde effektivt med websider.
1. navn
Type: Char. Dette felt gemmer sidens titel. Det vises i browserfanen, i menuer og i søgeresultater. Det kommer fra den tilknyttede ir.ui.view.
2. url
Type: Char. Sidens URL-sti. Den skal starte med en skråstreg. Eksempler: /contactus, /about-us. Dette er stien, besøgende bruger til at få adgang til siden.
3. view_id
Type: Many2one (ir.ui.view). Påkrævet. Linker til QWeb-visningen, der indeholder sidens indhold. Visningen holder arch (XML-skabelon) og nøgle. Sletning af visningen kaskaderer til siden.
4. website_id
Type: Many2one (website). Den hjemmeside, denne side tilhører. I multi-hjemmeside opsætninger kan sider være specifikke for én hjemmeside eller deles (når de er tomme).
5. er_publiceret
Type: Boolean. Om siden er synlig for besøgende. Upublicerede sider returnerer 404 eller omdirigerer. Brug dette til at skjule sider uden at slette dem.
6. hjemmeside_indekseret
Type: Boolean. Kontrollerer, om søgemaskiner kan indeksere siden. Sæt til False for tak-sider eller interne sider, du ikke ønsker i søgeresultater.
7. dato_publicering
Type: Datetime. Udgivelsesdatoen. Bruges til planlagt udgivelse og til at vise, hvornår indholdet blev offentliggjort.
8. header_synlig
Type: Boolean. Om man skal vise hjemmesideheaderen på denne side. Nyttigt til landingssider eller fuldskærmsoplevelser, hvor du ønsker at skjule headeren.
9. footer_synlig
Type: Boolean. Om man skal vise hjemmesidefoden. Ligesom header_synlig, giver dette dig mulighed for at oprette sider uden standardfoden.
10. er_startside
Type: Boolean. Computed field. Sandt når denne side er indstillet som hjemmesiden for webstedet. Kun én side pr. websted kan være hjemmesiden.
11. is_visible
Type: Boolean. Computed. Angiver, om siden er synlig baseret på publiceringsstatus, dato og synlighedsregler.
12. menu_ids
Type: One2many (website.menu). Menuelementerne, der linker til denne side. En side kan vises i flere menuer eller i ingen.
13. create_date
Type: Datetime. Hvornår posten blev oprettet. Automatisk styret af Odoo. Nyttigt til revision og rapportering.
14. write_date
Type: Datetime. Hvornår posten sidst blev ændret. Også automatisk styret. Hjælper med at spore indholdsopdateringer.
15. arch
Type: Text. QWeb XML-skabelonen. Gemmes på den tilknyttede ir.ui.view. Indeholder HTML-strukturen og Odoo-snippets. Redigerbar via websitebyggeren.
16. key
Type: Char. Unik identifikator for visningen. Bruges i modul XML og til arv. Formatet er normalt modul.view_name.
17. type
Type: Selection. Visningstype. For webside sider er dette altid qweb. Andre typer inkluderer formular, liste og træ.
18. aktiv
Type: Boolean. Blød slette flag. Når den er False, bliver posten arkiveret. Kommer fra ir.ui.view. Arkiverede sider serveres ikke.
19. website_meta_title
Type: Char. SEO meta titel. Overskriver den standard titel i søgeresultater. Vigtig for SEO synlighed.
20. website_meta_description
Type: Text. SEO meta beskrivelse. Snippet vist i søgeresultater. Hold det mellem 150 og 160 tegn for bedst visning.
21. website_meta_keywords
Type: Char. Meta nøgleord. Mindre vigtigt for moderne SEO, men stadig brugt af nogle systemer. Komma-separeret.
22. header_overlay
Type: Boolean. Om headeren overlapper indholdet. Bruges til hero-stil sider, hvor headeren sidder oven på banneret.
23. header_color
Type: Valg. Header farveskema. Muligheder som gennemsigtig, lys eller mørk. Påvirker kontrast og læsbarhed.
24. synlighed
Type: Valg. Adgangskontrol. Muligheder inkluderer Offentlig, Logget ind, Begrænset gruppe eller Med adgangskode. Kontrollerer, hvem der kan se siden.
25. redirect_type
Type: Valg. Når URL'en ændres, definerer dette omdirigeringen: 301 permanent, 302 midlertidig eller ingen. Vigtigt for SEO, når sider flyttes.
Hvordan denne model bruges i forretningsarbejdsgange
1. Landingssider og kampagner
Marketingteams opretter landingssider til kampagner. Hver side er en website.page post. De kontrollerer URL, indhold og publiceringsdato. Planlagt publicering bruger date_publish.
2. Virksomhedssider
Om os, Kontakt, Vilkår for service og Privatlivspolitik er typisk website.page poster. De oprettes én gang og opdateres efter behov. Menuplacering styres via menu_ids.
3. Tak- og bekræftelsessider
Sider som "Kontaktformular indsendt" eller "Opgave modtaget" er website.page-poster. Sæt website_indexed til False, så de ikke vises i søgeresultaterne.
4. Multi-Website og Lokalisering
I multi-website opsætninger bestemmer website_id, hvilken side der vises. Du kan duplikere sider pr. website med lokaliseret indhold.
5. Gated Indhold og Begrænset Adgang
Synlighedsfeltet giver dig mulighed for at oprette sider kun for indloggede brugere eller for specifikke grupper. Nyttefuldt til medlemsområder eller intern dokumentation.
Hvordan udviklere udvider denne model
Udviklere udvider website.page ved hjælp af flere mønstre. Odoo modelarv er den primære mekanisme.
Modelarv
Brug _inherit = 'website.page' til at udvide modellen. Tilføj nye Odoo-felter, overskriv metoder eller tilføj begrænsninger. Den arvede model i Odoo holder dine ændringer i et separat modul for nemme opgraderinger.
Tilføjelse af Felter
Definer nye Odoo-felter i din arvede model. Brug den rigtige felttype: Char, Many2one, Boolean, Integer, Text, Selection. Overvej website-afhængige felter for multi-website.
Python Udvidelser
Overskriv create, write eller unlink for at tilføje logik. Brug super() til at kalde den originale. Vær forsigtig med view_id-forholdet og kaskadeadfærd.
Odoo Studio
Odoo Studio giver dig mulighed for at tilpasse sider uden kode. Godt til hurtige layoutændringer. For kompleks logik eller API-drevet indhold er tilpassede moduler mere vedligeholdelsesvenlige.
Bedste praksis
- Brug URL-venlige slugs. Undgå mellemrum og specialtegn. Brug bindestreger for læsbarhed.
- Sæt website_indexed til False for takkesider, bekræftelsessider og interne sider.
- Når du ændrer URL'er, skal du aktivere omdirigering (301 eller 302) for at bevare SEO-værdien og undgå brudte links.
- Udfyld website_meta_title og website_meta_description for hver offentlig side. Dette forbedrer SEO-synlighed.
- Når du opretter sider via API eller XML-RPC, skal du først oprette ir.ui.view, derefter website.page med view_id. Sørg for, at visningen har type qweb og en unik nøgle.
Almindelige fejl
- Oprettelse af en website.page uden en gyldig view_id. Visningen skal eksistere og have type qweb.
- Brug af URL'er, der ikke starter med en skråstreg. Odoo forventer stier som /contactus, ikke contactus.
- Glemmer at sætte website_indexed på takkesider. De ender i søgeresultaterne og kan fortynde SEO.
- Ændring af en sides URL uden at opsætte en omdirigering. Gamle links går i stykker, og søgemaskiner mister forbindelsen.
- Modificering af arkitekturen af en visning, der blev redigeret i websitebyggeren. Noupdate-flaget i ir.model.data kan forhindre, at dine XML-ændringer anvendes. Nulstil det om nødvendigt.
Konklusion
Website.page-modellen er central for statisk sidehåndtering i Odoo. Den gemmer side metadata, URL'er og publiceringsindstillinger. Det faktiske indhold findes i den tilknyttede ir.ui.view.
At forstå dens felter og hvordan den arver fra ir.ui.view vil hjælpe dig med at konfigurere, tilpasse og integrere Odoo-websteder effektivt. Uanset om du er en funktionel konsulent eller en udvikler, vil en solid forståelse af website.page spare tid og forhindre fejl.
Har du brug for hjælp til din Odoo-implementering?
Dasolo hjælper virksomheder med at implementere, tilpasse og optimere Odoo. Vi specialiserer os i API-integrationer og Odoo-udvikling. Vores team har dyb erfaring med Odoo-datastrukturen og modeller som website.page.
Hvis du har brug for hjælp til din Odoo-implementering, tilpassede webside, eller integrationer, er vi her for at hjælpe. Book en demo for at diskutere dit projekt.