Hoppa till innehåll

Textfält i Odoo: Den Fullständiga Guiden

Allt du behöver veta om Text-fältet i Odoo-datamodellen, från grundläggande användning till teknisk anpassning
6 mars 2026 av
Textfält i Odoo: Den Fullständiga Guiden
Dasolo
| Inga kommentarer ännu

Introduktion


Textfältet är en av de mest praktiska fälttyperna i Odoo. Varje gång en användare fyller i ett anteckningsområde, skriver en produktbeskrivning eller lägger till en intern kommentar på en försäljningsorder, finns det en god chans att de skriver i ett Textfält.


Det ser ut som en enkel textruta i gränssnittet, men att förstå dess egenskaper och hur det passar in i Odoo-datamodellen och ORM gör en verklig skillnad när du designar formulär, bygger anpassade moduler eller ställer in Odoo Studio-fält för ditt team.

Denna guide täcker allt från vad Textfältet lagrar och hur det beter sig, till verkliga affärsanvändningsfall, teknisk anpassning, bästa praxis och de misstag som de flesta gör när de väljer denna fälttyp.

Vad är Textfältet i Odoo


I Odoo ORM är fields.Text fälttypen för att lagra fler-radig ren text. Det mappas till en TEXT-kolumn i PostgreSQL, utan längdbegränsning. Användare kan skriva en enda mening eller flera stycken, och fältet hanterar det lika bra.


I formulär renderas det som ett resizable <textarea>-element. I listvyer visas det som trunkerad ren text. I sökvyer stöder det textbaserad filtrering precis som Char-fältet.


Här är vad en grundläggande definition av Text-fält ser ut i en Python-modul:

from odoo import fields, models

class SaleOrder(models.Model):
    _inherit = 'sale.order'

    internal_notes = fields.Text(
        string='Interna anteckningar',
        translate=False,
    )

I Odoo Studio kallas detta fält Multi-Line Text. När det skapas genom Studio tilldelar Odoo automatiskt ett x_studio_-prefix. När du skapar det genom kod eller XML-RPC API definierar du det tekniska namnet själv.


Hur det skiljer sig från Char och Html

Tre fälttyper i Odoo kan lagra textinnehåll, och att veta när man ska använda vilken är en vanlig förvirring:


  • Char-fält: En-radig textinmatning. Bäst för korta värden som namn, koder och referenser. Stöder en valfri storleksgräns.
  • Text-fält: Flera-radig textarea. Bäst för anteckningar, beskrivningar och fria kommentarer. Lagrar ren text utan formatering.
  • Html-fält: Flera-radig rik textredigerare. Bäst för innehåll där formatering är viktigt, såsom e-postmallar, produktwebbeskrivningar eller webbsidor. Lagrar HTML-markup.

Text-fältet ligger mellan de två. Det ger användarna mer utrymme än ett Char-fält, men utan komplexiteten av HTML-markup. För de flesta interna anteckningar och enkla beskrivningar är det rätt val i Odoo-datamodellen.

Hur fältet fungerar


När du lägger till ett Text-fält i en Odoo-modell skapar ramverket automatiskt den motsvarande TEXT-kolumnen i PostgreSQL under modulinstallation eller uppgradering. Det finns inga manuella SQL-migreringar involverade.


Till skillnad från Char-fältet finns det ingen size-parameter tillgänglig på Text-fält. Databasens kolumn pålägger ingen teckenbegränsning. Detta är avsiktligt: Text-fält är avsedda för öppna innehåll där det inte skulle ge mening att begränsa längden i förväg.


Nyckelfältsattribut

De viktigaste egenskaperna hos ett Text-fält i Odoo-ramverket:


  • översätta: När den är inställd på True, kan fältvärdet översättas per språk. Användbart för flerspråkiga Odoo-instanser där texten ändras beroende på användarens språk.
  • obligatorisk: Gör fältet obligatoriskt på gränssnitts- och ORM-nivå. Användare kan inte spara en post utan att fylla i det.
  • standard: Ställer in ett automatiskt standardvärde när nya poster skapas. Kan vara en statisk sträng eller en anropbar metod.
  • beräkna: Kopplar en Python-metod som dynamiskt genererar fältvärdet. Användbart för automatiskt genererade sammanfattningar eller härlett innehåll.
  • lagra: När den kombineras med beräkna, kontrollerar den om det beräknade värdet sparas i databasen. Med lagra=True är värdet sökbart och tillgängligt i rapporter.
  • kopiera: Kontrollerar om fältvärdet ingår när en post dupliceras. Standardinställningen är True. Ställ in på False för anteckningar som inte ska överföras till dubbletter.
  • index: Används sällan på Text-fält eftersom fulltextindexering fungerar annorlunda än det enkla B-trädindexet som används för Char-fält. För sökbart innehåll är PostgreSQL fulltext-sökning eller Odoos inbyggda filtrering vanligtvis tillräckligt.

Hur det visas i vyer

I formulärvyer renderas Text-fältet som en <textarea> som användare kan ändra storlek på vertikalt. I listvyer trunkeras innehållet för att passa kolumnbredden. I sökvyer stöder det textbaserade sökfilter direkt när du lägger till det i sökvyns definition.


Till skillnad från Html-fält laddar Text-fältet inte en WYSIWYG-redigerare. Användare ser ett vanligt textområde utan formateringsverktygsfält. Det de skriver är exakt vad som lagras i databasen, med radbrytningar bevarade.


Interaktion med Odoo ORM

Från ett utvecklarperspektiv är det enkelt att läsa och skriva Textfält i Odoo-utveckling. Du får åtkomst till värdet direkt på postobjektet, och ORM hanterar all persistens. Radbrytningar lagras som de är. Det finns ingen automatisk sanering eller escaping som tillämpas på vanliga Textfält, vilket är en av anledningarna till att det är distinkt från Html-fältet, där Odoo tillämpar sanering för att förhindra XSS-problem.

Affärsanvändningsfall


Textfält förekommer genom hela Odoo på platser där användare behöver skriva mer än en enda rad. Här är fem konkreta exempel från verkliga affärsarbetsflöden.


Försäljning: Interna ordernoteringar

Fältet note på försäljningsorder och fältet internal_note som används i vissa implementationer är Textfält. Försäljningsrepresentanter använder dem för att registrera leveransinstruktioner, speciella förpackningskrav eller kundpreferenser som inte passar in i ett strukturerat fält. Dessa anteckningar följer med ordern och är synliga för driftteam utan att skrivas ut på kunddokument.


Lager: Produktens interna anteckningar

På produktformuläret tillhandahåller Odoo en Anteckningar-flik med ett Textfält för interna kommentarer. Lagerteam använder detta för att dokumentera hanteringsinstruktioner, ömtålighetsvarningar eller leverantörsspecifik information. Eftersom det är vanlig text och inte visas på webbplatsen eller kunddokument är det säkert att skriva operativa detaljer som externa parter inte bör se.


Inköp: Leverantörsvillkor och leveransinstruktioner

På inköpsorder tillåter ett Textfält för leverantörsanteckningar inköpsteam att dokumentera specifika avtal eller leveransbegränsningar som bekräftades via e-post eller telefon. Att ha denna information kopplad till orderposten förhindrar missförstånd när varorna anländer och den ursprungliga konversationen inte längre är lätt att hitta.


CRM: Möjlighetsöversikter och mötesanteckningar

Försäljningsteam som arbetar genom CRM-pipelinen lägger ofta till ett Textfält till möjlighetsregister för fria anteckningar från kundmöten, invändningar som väckts eller kontext om köpprocessen. Till skillnad från chattmeddelanden håller ett dedikerat Textfält denna information strukturerad och lättläst vid en snabb överblick när någon annan tar över ledningen.


HR: Kommentarer från anställda och sökande

HR-team behöver ofta fånga intervjunoteringar, onboardingkommentarer eller prestationsobservationer i ett fält som förblir kopplat till anställdas eller sökandes register. Ett Textfält på anställdemodellen är ett rent och enkelt sätt att lagra detta utan att skapa en separat modell. Det är sökbart, utskriftsvänligt och lätt att inkludera i anpassade HR-rapporter.

Skapa eller anpassa Textfältet


Det finns tre huvudsakliga sätt att lägga till ett Textfält i en Odoo-modell, beroende på din tekniska kontext och distributionsmetod.


Använda Odoo Studio (Ingen kod)

Odoo Studio är den enklaste vägen för affärsanvändare och konsulter som inte vill skriva kod. För att lägga till ett Textfält utan utvecklingsarbete:

  1. Öppna Odoo Studio från huvudmenyn (kräver Studio-appen).
  2. Navigera till formuläret där du vill ha fältet.
  3. Dra ett Multi-Line Text-fält från Studio-sidofältet till formuläret.
  4. Ställ in etiketten, obligatorisk status och eventuellt standardvärde i fältets egenskapspanel.
  5. Spara och stäng Studio.

Studio hanterar fältets skapande och vyuppdatering automatiskt. Fältet får ett x_studio_-prefix och är omedelbart tillgängligt i formuläret utan någon databasmigration eller serveromstart.


Använda Python i en anpassad modul

För all anpassning som behöver versionskontrolleras och distribueras över flera miljöer är det rätt metod att definiera fältet i Python. Detta är standard Odoo utvecklingspraxis:


from odoo import fields, models

class ResPartner(models.Model):
    _inherit = 'res.partner'

    x_client_notes = fields.Text(
        string='Client Notes',
        translate=False,
        copy=False,
    )

Efter att ha definierat fältet i modellfilen behöver du lägga till det i den relevanta vy-XML så att det visas i gränssnittet. Odoo skapar automatiskt databas kolumnen när du installerar eller uppgraderar modulen. Detta är den rekommenderade metoden för alla produktionsanpassningar av Odoo som behöver underhållas över tid.


Använda XML-RPC API

Om du hanterar Odoo-fält programmässigt, till exempel som en del av ett distributionsskript eller en fjärrkonfigurationsnotebook, kan du skapa Text-fält via XML-RPC API:


field_id = models.execute_kw(
    ODOO_DB, uid, ODOO_API_KEY,
    'ir.model.fields', 'create',
    [{
        'name': 'x_client_notes',
        'field_description': 'Client Notes',
        'model_id': model_id,
        'ttype': 'text',
        'state': 'manual',
        'translate': False,
        'copy': False,
    }]
)

Värdet ttype: text talar om för Odoo att skapa ett Text-fält (till skillnad från char för ett Char-fält eller html för ett Html-fält). Inställningen state: manual indikerar att detta fält skapades utanför en modul, vilket är korrekt för fält som skapats genom Studio eller programmässigt via API. Detta är den metod som Dasolo använder när de distribuerar fjärrfältkonfigurationer för kunder.

Bästa praxis


1. Använd Text när innehållet verkligen behöver flera rader

Det vanligaste misstaget är att nå efter ett Text-fält när ett Char-fält skulle vara tillräckligt. Om värdet är ett namn, en kod, en referens eller något som får plats på en rad, använd Char. Spara Text för innehåll där användare förväntas skriva meningar eller stycken. Att använda ett Text-fält för en kort enskild värdeinmatning skapar en klumpig användarupplevelse och en missvisande datamodell.


2. Använd Html när formatering är viktigt

Om användare behöver lägga till punktlistor, fet text, hyperlänkar eller någon visuell formatering till innehållet, är Text-fältet fel val. Använd istället ett Html-fält. Text-fält stöder endast ren text. Att be användare skriva formaterat innehåll i en vanlig textarea kommer att leda till frustrerade användare som förväntar sig formateringsalternativ som inte finns.


3. Aktivera översättning för användarvänligt flerspråkigt innehåll

I företag som kör Odoo på flera språk bör alla Text-fält som visas på kundvända dokument eller webbplats ha translate=True. Detta låter översättare tillhandahålla språk-specifika versioner av innehållet utan att skriva över varandras arbete. För interna anteckningar och operativa kommentarer som användare skriver själva behövs vanligtvis ingen översättning.


4. Ställ in copy=False för anteckningar som inte ska dupliceras

När användare duplicerar en försäljningsorder eller en produkt kopieras textfält som standard. För anteckningar som fångar kontext specifik för den ursprungliga posten, såsom en kundkonversation eller ett specifikt leveransproblem, kan detta skapa förvirring. Ställ in copy=False på dessa fält så att duplicerade poster börjar med en ren anteckningssektion.


5. Använd compute med store=True för automatiskt genererade sammanfattningar

Textfält kan beräknas dynamiskt i Odoo. Ett användbart mönster är att bygga ett automatiskt genererat sammanfattningsfält som sammanfogar värden från andra fält på posten. Med store=True och lämpliga @api.depends() utlösare sparas den beräknade texten i databasen och blir sökbar i listvyer och filter. Detta är en praktisk teknik för Odoo beräknade fält för att skapa lätta interna sammanfattningar utan att bygga en separat rapport.

Vanliga fallgropar


Välja Text när Html behövs

Om ett fält är avsett att hålla innehåll som visas på webbplatsen eller i en formaterad PDF-rapport, kommer användning av Text istället för Html att ta bort all formatering. Användare som klistrar in innehåll med punktlistor eller fet text i ett Text-fält kommer att se det som platt, oformaterad prosa. Fråga alltid om utgångskanalen behöver formatering innan du väljer fälttyp.


Välja Text när Char är rätt val

Ett Text-fält renderas som en hög, justerbar textruta. Om ett fält bara någonsin kommer att hålla ett kort värde som ett spårningsnummer eller en produktvariantkod, gör användning av Text formuläret onödigt skrymmande. En-radigt innehåll hör hemma i ett Char-fält, som renderas som en kompakt textinmatning som passar naturligt i en formulärlayout.


Glömma översätta på flerspråkiga etiketter och beskrivningar

På Odoo-instanser som är distribuerade över flera länder innebär avsaknaden av translate=True-attributet på ett användarvänligt Text-fält att alla användare ser samma värde oavsett deras språkinställning. Detta är särskilt problematiskt för produktbeskrivningar och kategorianteckningar som är synliga i gränssnittet. Lösningen är enkel, men att lägga till det efter att data redan finns i systemet kräver en noggrann migrering för att undvika att skriva över befintliga värden.


Använda Text för strukturerad data

Ett Text-fält som lagrar JSON, pipe-separerade värden eller andra handgjorda strukturerade format är ett underhållsproblem som väntar på att hända. Om data har en konsekvent struktur bör den lagras i de lämpliga Odoo-fälttyperna: Selection för fasta alternativ, Many2one för relationer, eller en relaterad modell med rätt fält. Att koda struktur inuti ett fritt textfält gör det omöjligt att filtrera, gruppera eller rapportera om datan på ett tillförlitligt sätt.


Att inte lägga till fältet i sökvy

Ett textfält som innehåller viktig information men som inte ingår i modellens sökvy kan inte filtreras från listvyns sökfält. Användare slutar med att bläddra igenom poster för att hitta vad de behöver istället för att helt enkelt skriva in ett nyckelord. Om ett textfält lagrar information som användare vill söka efter, lägg till det i sökvydefinitionen när du skapar fältet.

Slutsats


Textfältet är en av de byggstenar i Odoo-ramverket som ser oansenlig ut tills du börjar designa formulär på allvar.


 Att välja mellan Char, Text och Html är ett av de första besluten du står inför i ett Odoo-anpassningsprojekt, och att få det rätt från början undviker omarbete och problem med datakvalitet längre fram.

Oavsett om du lägger till ett anteckningsfält genom Odoo Studio, definierar det i en Python-modul eller skapar det programmässigt via API:et, kommer mönstren i denna guide att hjälpa dig att göra rätt val och konfigurera fältet korrekt för ditt användningsfall.


En väl utformad Odoo-datamodell bygger på små, välvalda beslut. Att välja rätt fälttyp för varje informationsbit är en av dem, och textfältet, använt i rätt sammanhang, är ett pålitligt och flexibelt verktyg för att fånga den typ av innehåll som inte passar in i strukturerade fält.

På Dasolo hjälper vi företag att implementera, anpassa och optimera Odoo över alla avdelningar. Oavsett om du behöver hjälp med att designa en ren datamodell, bygga anpassade fält och arbetsflöden, eller sätta upp en fullständig Odoo-implementation från grunden, är vårt team här för att stödja dig. Kontakta oss och låt oss prata om ditt Odoo-projekt.

Textfält i Odoo: Den Fullständiga Guiden
Dasolo 6 mars 2026
Dela detta inlägg
Logga in att lämna en kommentar