Skip to Content

Char Field i Odoo: Den komplette guide til brug og indstillinger

Alt du skal vide om Char-feltet i Odoo: hvad det er, hvordan du bruger det, og hvordan du tilpasser det teknisk
6. marts 2026 af
Char Field i Odoo: Den komplette guide til brug og indstillinger
Dasolo
| Ingen kommentarer endnu

Introduktion


Char-feltet er en af de mest anvendte felt-typer i Odoo. Når du ser et kundenavn, en varenummerkode eller en kort note på en salgsordre, er chancen stor for, at du interagerer med et Char-felt—det er kort tekst, enkelt og overalt i systemet.


At forstå dette felt er relevant både for ikke-tekniske brugere, der tilpasser skærmbilleder i Odoo Studio, for udviklere, der bygger moduler, og for konsulenter, der skal designe et holdbart datamodel-layout for kunder.


Feltet virker simpelt, men der er flere egenskaber og valg, som påvirker datahygiejne og brugeroplevelse. Denne guide forklarer, hvad feltet gemmer, hvordan det opfører sig i brugerfladen, hvordan du opretter det, og konkrete eksempler fra daglig forretningsbrug.

Hvad er et Char-felt i Odoo?


I Odoos ORM er Char-feltet beregnet til korte tekststrenge. På databaseniveau bliver det enten en VARCHAR(n) eller et TEXT-felt i PostgreSQL, alt efter om du angiver en maksimal længde.


Set fra brugerens side fremstår et Char-felt som et enkeltlinje tekstfelt i formularer og som almindelig tekst i lister. Det er det oplagte valg til navne, koder, referencer og andre korte, enkeltlinjede værdier.


Eksempler på definitioner i kode viser typisk feltets tekniske parametre (label, størrelse, indeks), men selve syntaksen er sekundær for forståelsen: pointen er, at feltet deklareres på modellen og vises i visningerne.

I et modul defineres feltet i Python, hvor du angiver måltekst, længdebegrænsning og andre indstillinger. Den tekniske implementering oprettes sammen med modulets installation, så databasen får den nye kolonne automatisk.

Parametrene i definitionen styrer både, hvordan feltet vises og hvordan databasen håndterer det: label (= hvad brugeren ser), size (=maks antal tegn), index (=opret søgeindeks) er de mest hyppige.


Når du bruger Odoo Studio, kaldes samme type felt ofte bare for "Text (single line)" og får automatisk et x_studio_-præfiks. Ved kodning vælger du selv det tekniske navn, hvilket er vigtigt for vedligeholdelse.

Hvordan feltet fungerer


Odoo sørger selv for at skabe og ændre kolonner i databasen, når du installerer eller opgraderer moduler—du behøver normalt ikke lave håndskrevne SQL-migrationer for Char-felter.


Teknisk gemmes ubundne Char-felter som TEXT, mens felter med size bruges som VARCHAR(n). PostgreSQL håndterer begge effektivt; størrelsesangivelsen er primært en måde at håndhæve længdebegrænsning på.


Nøgleattributter for Char-feltet

Her er de vigtigste egenskaber, du bør have styr på, når du arbejder med Char-felter i Odoo.

  • size: Maksimalt antal tegn. Udelad size, og der er ingen databasebegrænsning på længden.
  • translate: Sæt til True hvis feltet skal kunne oversættes pr. sprog — afgørende i flersprogede installationer.
  • required: Gør feltet obligatorisk både i brugerfladen og på modelniveau.
  • default: Angiver en standardværdi ved oprettelse af nye poster.
  • index: Opretter et databaseindeks for hurtigere søgninger og filtreringer.
  • compute: Kobler feltet til en Python-metode, så værdien kan beregnes dynamisk (brugbart til afledte værdier).
  • store: Bruges sammen med compute for at bestemme, om det beregnede resultat skal gemmes i databasen.
  • copy: Styrer om værdien kopieres ved duplikering af poster; standarden er True.

Hvordan det vises i visninger

I formularer vises Char som et almindeligt input-felt; i lister som tekst; i søgeren kan du bruge standardoperatorer som indeholder, er lig med eller starter med—så det er praktisk til hurtig filtrering.


Du kan også kombinere feltet med widgets for at ændre fremtoningen: et email-widget gør det klikbart som en mailadresse, et url-widget åbner linket i en ny fane osv.


Interaction med Odoo ORM

Udviklermæssigt læses og skrives Char-felter direkte på rekordobjektet, og frameworket tager sig af validering og sanitering i henhold til feltdesignet. Der sker ingen komplekse konverteringer, hvilket gør Char-feltet enkelt at bruge i dagligt udviklingsarbejde.

Forretningsscenarier hvor Char-feltet bruges


Eksempler fra virkeligheden — hvor feltet bruges hver dag


CRM: Kundeinterne referencekoder

Mange virksomheder opbevarer et internt kundenummer på partneren for at undgå forveksling ved lignende navne. Et Char-felt på res.partner gør disse koder søgbare og synlige på salgsordrer og fakturaer, hvilket sparer tid for salgsteamet.


Salg: Kunde PO-referencer

Kundernes PO-numre skal ofte vises på fakturaer og leveringsdokumenter. Et Char-felt til kundens ordrenummer flyder ofte automatisk igennem fakturaer og mindsker behovet for opfølgende korrespondance.


Lager: Interne varenumre

Default_code på product.template er et klassisk Char-felt til interne varenumre. Det bruges i lagre, stregkodescannere og indkøb—ensartethed i det felt er afgørende for korrekt logistik og indkøbsflow.


Regnskab: Moms- og registreringsnumre

Momsnumre, CVR-numre og andre registreringsnumre gemmes som Char-felter på partneren. Når de er konfigureret korrekt, fremgår de automatisk af kundefakturaer og leverandørfakturaer, hvilket mindsker manuel opfriskning af data.


HR: Medarbejder-id og adgangskoder

HR registrerer ofte medarbejdernumre, adgangskoder til adgangssystemer eller eksterne løn-ID'er i Char-felter. Det gør det nemt at knytte Odoo-poster til andre systemer uden et fuldt integrationsprojekt fra dag ét.

Sådan opretter eller tilpasser du et Char-felt


Tre måder at oprette et Char-felt på, afhængigt af dit setup


Brug af Odoo Studio (no-code)

Odoo Studio er Odoos visuelle værktøj til hurtige tilpasninger. Sådan tilføjer du et Char-felt uden kode:

  1. Åbn Odoo Studio fra hovedmenuen.
  2. Gå til den formular, hvor feltet skal være.
  3. Træk et enkeltlinje tekstfelt ind på formularen.
  4. Angiv label, obligatorisk-status og eventuelt længdebegrænsning i feltets egenskaber.
  5. Gem og luk Studio.

Studio opretter feltet automatisk med et x_studio_-præfiks og tilføjer det i visningen—ingen manuel database-migration nødvendig.


Definere feltet i et custom modul (Python)

For udviklere, der arbejder med versioneret kode, defineres feltet i Python i modulets modelfiler. Det er den bedste praksis til produktionsopsætninger, der skal deployes til flere miljøer.

En typisk definition specificerer feltets tekniske navn, label, størrelse, om det skal-indekseres, og om det kopieres ved duplikering. Efterfølgende tilføjer du feltet i view-XML, så det bliver synligt i UI.

Når modulet installeres eller opgraderes, håndterer Odoo kolonneoprettelsen i databasen automatisk.


Oprettelse via XML-RPC API

Hvis du styrer konfigurationer programmatisk—f.eks. i en deployments-pipeline eller et automatiseringsskript—kan du oprette feltet via XML-RPC API'en.

Ved API-oprettelse angiver du teknisk navn, model, felt-type (char), størrelse og sætter feltets tilstand til manuel, når det ikke oprettes fra et modul.

At markere state='manual' fortæller Odoo, at feltet er oprettet uden for et modul—samme måde Studio markerer sine felter på, og hvordan eksterne scripts bør gøre det.

Gode fremgangsmåder


1) Angiv størrelse når du kender maks længde

Hvis feltet kun skal indeholde f.eks. landekoder eller faste id'er, angiv size. Det kommunikerer formålet og forhindrer utilsigtet indsættelse af overdrevne værdier.


2) Tilføj indeks på ofte søgte felter

Hvis brugere regelmæssigt filtrerer efter feltet—kunde- eller ordrenummer—brug index=True. På store tabeller kan et indeks være forskellen mellem en hurtig søgning og en langsom fuld tabel-scanning.


3) Brug translate=True til brugerrettet flersprog

Når feltets værdi skal vises forskelligt afhængigt af brugerens sprog—såsom jobtitler eller produktnavne—aktiver oversættelse, så lokale brugere ser relevante tekster i deres sprog.


4) Giv felterne klare tekniske navne

Vælg sigende tekniske navne i custom kode. Et navn som x_customer_erp_id er langt lettere at vedligeholde end x_field1. I Studio bør du også rette navnet inden deployment, da tekniske navne er svære at ændre senere.


5) Brug compute til afledte referencer

Char-felter kan beregnes dynamisk. F.eks. kan en reference, der kombinerer årstal og en sekvens, genereres i en compute-metode og gemmes med store=True, så den kan bruges i søgninger og rapporter uden at blive genberegnet ved hver visning.

Almindelige faldgruber


Farligt at lade størrelsen være ubegrænset

Uden size kan brugere indsætte lange beskrivelser i et felt, der senere skal på tryk eller eksporteres til systemer med stramme begrænsninger. Definér en rimelig længde, hvor det er relevant.


Manglende indeks på ofte søgte felter

Hvis et felt bruges til filtrering i lister og søgeresultater, men mangler indeks, bliver hver søgning en fuld tabel-scanning—et problem der først opdages, når datamængden vokser.


Forveksling mellem Char og Text

Char er til korte enkeltlinjer. Text er til længere, multiline indhold. Brug ikke Char til adresser eller noter, hvor brugeren forventer linjeskift og wrap — vælg Text i stedet.


Glem ikke translate på flersprogede felter

Manglende oversættelse betyder, at alle sprogbrugere ser den samme tekst. For kunde- eller produktfelter, som er brugerrettede, fører det til forvirring i internationale opsætninger.


Brug ikke Char når Selection eller relation er passende

Hvis feltet kun må indeholde et begrænset sæt værdier, er en Selection eller Many2one mere korrekt. Char-fri tekst fører ofte til stavefejl og variationer, som gør rapportering og gruppering upræcis.

Ofte stillede spørgsmål (FAQ)


Hvad er forskellen på Char og Text i Odoo?

Char gemmer korte enkeltlinje-tekster og vises som et text-input. Text gemmer længere multiline-tekster og vises som et textarea. Brug Char til navne, koder og referencer; brug Text til beskrivelser og noter.


Kan jeg begrænse antal tegn i et Char-felt?

Ja. Angiv size i definitionen (f.eks. fields.Char(size=64)). I Studio kan du sætte længdebegrænsning i feltets egenskaber. Uden size er der ingen databasebegrænsning.


Hvordan får jeg et Char-felt til at fremgå i søgeren?

Add the field to the search view of the model. In Studio, enable the search option in the field properties. In code, add <field name="your_char_field"/> inside the <search> view definition in your XML. Once added, users can filter records by that field directly from the search bar.


Kan jeg gemme tal i et Char-felt?

Teknisk ja, men undgå det til beregningsmæssige værdier. Brug Integer eller Float når du skal regne på data. Char er godt til tal der behandles som tekst—postnumre, telefonnumre, IBAN eller serienumre.


Hvordan laver jeg et beregnet Char-felt, som også gemmer værdien?

Definér feltet med compute='_compute_my_field' og store=True. Skriv compute-metoden og brug @api.depends(...) for at angive afhængigheder. Med store=True bliver værdien gemt og søgbar uden genberegning ved hver læsning.

Konklusion


Char-feltet er enkelt, men vigtigt. De fleste bruger det konstant uden at tænke over det. Alligevel påvirker kloge valg omkring størrelse, indeks og typevalg både datakvalitet og brugeroplevelse markant.


Uanset om du opretter feltet i Studio, skriver en definition i et custom Python-modul eller laver det via API, hjælper mønstrene i denne guide dig med at undgå typiske fejl fra starten.


Et gennemarbejdet datamodel-design med de rette felttyper er en af de vigtigste byggesten i en succesfuld Odoo-implementering. Char-feltet er et lille, men centralt element i den puslespilsopbygning.

Hos Dasolo hjælper vi virksomheder med at implementere, skræddersy og optimere Odoo på tværs af funktioner. Vi assisterer med alt fra datamodel-design til udvikling af moduler og felter, så løsningen bliver holdbar i drift. Kontakt os og lad os tage en uforpligtende snak om dit Odoo-projekt.

Char Field i Odoo: Den komplette guide til brug og indstillinger
Dasolo 6. marts 2026
Del dette indlæg
Log ind for at skrive en kommentar