Phân biệt các loại model trong Odoo


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.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

Nguồn: vinasupport.com

             
SHARE

Bài viết liên quan

mode_edit Bình luận của bạn

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 *

account_circle
web