Jika modul adalah "kotak", maka Model adalah "otak" di dalamnya. Ini adalah bagian terpenting dari sebuah modul yang merepresentasikan objek bisnis (seperti Produk, Kontak, atau Faktur).

Setiap Model di Odoo secara ajaib terhubung ke sebuah tabel di basis data PostgreSQL 🐘.

Model bertanggung jawab untuk:

Semua model dibuat dari kelas Python yang mewarisi models.Model. File-filenya biasa ditaruh di direktori models/.

📖 Contoh Model Sederhana: Buku Perpustakaan

Mari kita buat model untuk menyimpan data "Buku". Buat file models/library_book.py:

# -*- coding: utf-8 -*-

from odoo import models, fields

class LibraryBook(models.Model):
    _name = 'library.book'  # ID teknis model -> jadi tabel 'library_book' di DB
    _description = 'Library Book'  # Deskripsi singkat

    # == Definisi Kolom (Fields) ==
    name = fields.Char('Judul', required=True)
    author = fields.Char('Penulis')
    publication_date = fields.Date('Tanggal Terbit')
    is_available = fields.Boolean('Tersedia?', default=True)
    page_count = fields.Integer('Jumlah Halaman')
    description = fields.Text('Deskripsi')

Jangan Lupa! ☝️ Impor file baru ini di models/init.py agar Odoo bisa "melihatnya":

from . import library_book

Atribut Khusus (_name, _description, _order)

🏷️ Jenis-Jenis Kolom (Fields)

Odoo punya banyak "label" (Kolom) untuk tipe data yang berbeda.

Kolom Dasar