Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vinascript/html/wp-includes/functions.php on line 6114
Phân biệt các loại model trong Odoo - VinaScript

Latest Post

Triển khai dự án PHP, Mysql với Nginx trên Docker Tìm hiểu về HTML – Ưu điểm, nhược điểm và cách hoạt động của HTML

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

Để lại một bình luậ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 *