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/.
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
_name, _description, _order)_name: Wajib ada! Ini adalah KTP-nya model Anda. Odoo mengubah titik (.) menjadi garis bawah (_) untuk nama tabel di basis data._description: Deskripsi singkat yang ramah manusia._order: (Opsional) Mengatur urutan default saat data ditampilkan. Contoh: _order = "publication_date desc, name asc".Odoo punya banyak "label" (Kolom) untuk tipe data yang berbeda.
Char: Teks singkat (judul, nama).Text: Teks panjang (deskripsi).