Gunakan tanda [] untuk mencari tag gan! contoh [flutter, javascript]

Penjelasan Odoo Model

Penjelasan Odoo Model

Artikel ini dibukukan pada buku Odoo ERP Development
access_time 20 Jan 2025 remove_red_eye 199 Kali spellcheck 417 Kata, 3699 Karakter
#odoo #python #postgre

Odoo adalah framework ERP yang sangat fleksibel dan berbasis Python, yang memungkinkan pengembangan aplikasi bisnis dengan mudah. Salah satu komponen utama dalam pengembangan Odoo adalah Model, yang bertanggung jawab untuk menangani data dan logika bisnis. Artikel ini akan menjelaskan apa itu model, anatomi model, dan berbagai jenis fields yang digunakan dalam Odoo.

1. Apa Itu Model?

Model dalam Odoo adalah representasi data dari suatu entitas atau tabel dalam database. Model bertugas untuk mendefinisikan struktur data, relasi antar data, dan perilaku data tersebut dalam sistem.

Sebagai contoh, jika Anda ingin mengelola pelanggan, Anda dapat membuat model bernama res.partner yang menyimpan informasi seperti nama, email, nomor telepon, dan sebagainya.

Fungsi Utama Model:

  1. Mengelola struktur data yang akan disimpan di database.
  2. Menentukan relasi antar data (misalnya hubungan antara pelanggan dan faktur).
  3. Menyediakan logika bisnis yang berkaitan dengan entitas tersebut (seperti validasi atau aksi otomatis).

2. Anatomi Model

Setiap model di Odoo adalah subclass dari models.Model dan memiliki beberapa elemen utama. Berikut adalah anatomi dasar dari sebuah model Odoo:

  1. Import beberapa kode dari odoo, yaitu models, fields, dan api
  2. Meng-inherit class Models dari odoo, atau bisa dibilang menjadikan turunan
  3. _name merupakan nama model
  4. _description merupakan deskripsi model
  5. Field - field pada model
  6. Method atau fungsi pada model

3. Fields pada Model Odoo

Fields adalah elemen penting dalam model. Fields digunakan untuk menentukan tipe data yang disimpan dalam database. Berikut adalah beberapa jenis fields yang sering digunakan di Odoo:

a. Fields Dasar:

Tipe FieldDeskripsiContoh Penggunaan
fields.CharTeks pendek (maks. 255 karakter)Nama pelanggan, kode produk
fields.TextTeks panjangDeskripsi produk
fields.IntegerAngka bulatJumlah stok
fields.FloatAngka desimalHarga produk, diskon
fields.BooleanNilai benar/salahStatus aktif/nonaktif
fields.DateTanggalTanggal lahir
fields.DatetimeTanggal dan waktuTanggal transaksi
fields.SelectionPilihan dari daftar nilai tetapStatus pesanan (Draft, Confirmed, Done)

b. Fields Relasi

Tipe FieldDeskripsiContoh Penggunaan
fields.Many2oneRelasi ke satu record lainPelanggan pada faktur
fields.One2manyRelasi ke banyak record lainDaftar produk dalam pesanan
fields.Many2manyRelasi ke banyak record tanpa batasanKategori produk, hak akses pengguna

c. Fields Khusus

Tipe FieldDeskripsiContoh Penggunaan
fields.HtmlMenyimpan data HTMLDeskripsi dengan format kaya teks
fields.BinaryFile binerGambar produk, lampiran file
fields.MonetaryNilai mata uang

Harga produk dengan mata uang spesifik

Properti pada Fields

Setiap field dapat memiliki properti tambahan untuk menentukan perilaku dan validasi data:

  • string: Label untuk field.
  • required: Apakah field wajib diisi.
  • default: Nilai default field.
  • readonly: Apakah field hanya-baca.
  • help: Bantuan atau deskripsi tambahan untuk pengguna.

Contoh Field dengan Properti:

name = fields.Char(string="Name", required=True, help="Nama lengkap pelanggan")
price = fields.Float(string="Price", default=0.0, required=True)
is_available = fields.Boolean(string="Available", default=True)

Kesimpulan

Model di Odoo adalah fondasi utama dalam pengelolaan data dan logika bisnis. Dengan memahami anatomi model dan jenis-jenis fields yang tersedia, Anda dapat mendesain aplikasi yang efisien dan sesuai dengan kebutuhan bisnis. Field memberikan fleksibilitas untuk menangani berbagai tipe data, sementara logika pada model memungkinkan Anda menerapkan aturan bisnis dengan mudah.

Jika Anda baru memulai, pastikan untuk memahami konsep dasar ini sebelum melanjutkan ke fitur-fitur yang lebih kompleks seperti views, controllers, dan modules lainnya. Happy coding!


Artikel ini dibukukan pada buku Odoo ERP Development
Navigasi Konten