Odoo Models là 1 thành phần quan trọng trong kiến trúc của hệ thống Odoo. Bài viết này vinasupport.com sẽ hướng dẫn các bạn phân biệt các loại Model trong Odoo.
Các loại model trong Odoo
Odoo có 3 loại model đó là:
- Model: dành cho các mô hình cơ sở dữ liệu thông thường
- TransientModel: dành đối với dữ liệu tạm thời, được lưu trữ trong cơ sở dữ liệu nhưng tự động xóa bỏ thường xuyên.
- AbstractModel: Dành với các lớp cha trừu tượng có nghĩa là được chia sẻ bởi nhiều mô hình kế thừa trong Odoo.
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.TransientModel và models.AbstractModel
Với:
- _name và _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
Nguồn: vinasupport.com