Latest Post

Tăng thứ hạng và truy cập tự nhiên với 10 phương pháp SEO hay nhất Kiếm Tiền Online (mmo): Khái Niệm và Các Hình Thức Phổ Biến

Odoo Models là một phần quan trọng trong cấu trúc tổng thể của hệ thống Odoo. Trong bài viết này, chúng ta sẽ tìm hiểu cách phân biệt giữa các loại Model khác nhau trong Odoo.

Các loại model trong Odoo

Odoo sử dụng ba loại model chính:

  1. **Model**: Loại này dành cho các mô hình cơ sở dữ liệu thông thường. Dữ liệu trong model này được lưu trữ và duy trì trong cơ sở dữ liệu.
  2. **TransientModel**: Được sử dụng để lưu trữ dữ liệu tạm thời. Dữ liệu trong TransientModel cũng được lưu trữ trong cơ sở dữ liệu, nhưng hệ thống tự động loại bỏ nó thường xuyên, phù hợp khi bạn cần lưu trữ thông tin tạm thời mà không cần giữ lâu dài.
  3. **AbstractModel**: Loại này được sử dụng cho các lớp cha trừu tượng, có nghĩa là nó được chia sẻ bởi nhiều mô hình kế thừa trong Odoo. Điều này cho phép bạn chia sẻ các tính năng chung hoặc logic giữa nhiều mô hình khác nhau một cách hiệu quả.

Tạo model trong Odoo

Mỗi model trong Odoo nên đặt trong 1 file trong thư mục <my_addons>/models

Nó có nội dung như sau:

from odoo import fields, models, api


class HmVpsPackage(models.Model):
    _name = 'hm.vps.package'
    _description = 'VPS Package'

    name = fields.Char('Package name')

Trong đó models.Model là loại model của Odoo. Tương ứng bạn có thể sử dụng 2 loại model là: models.TransientModelmodels.AbstractModel

Với:

  • _name_description là api của model
  • name = fields.Char(‘Package name’) là định nghĩa 1 field trong model.

Các API trong Odoo Models

Các API cơ bản thường sử dụng:

Tên API Giá trị mặc định Miêu tả
_auto True|False Có tạo bảng CSDL không? True thì sẽ tạo bảng dưới CSDL
Với AbstractModel thì mặc định _auto=False
_name None Tên của model
_table None Tên của bảng CSDL. Trường hợp mặc định nó sẽ lấy tên của model đặt tên cho tên bảng
_sql_constraints [] Các rằng buộc SQL. Cú pháp: [(name, sql_def, message)]
_inherit () Chỉ ra các model mà nó sẽ kế thừa
_rec_name None Tên field hiển thị mặc định. Nếu là None thì nó sẽ hiển thị field “name
_order ‘id’ Sắp sếp theo field nào. Mặc định là sắp xếp theo id

Ngoài ra còn có các loại api khác các bạn vui lòng tham khảo tài liệu tại đây

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *