Ràng buộc mô hình

Một phần của tài liệu Tìm hiểu ODOO FRAMEWORK và xây dựng ứng dụng thương mại điện tử WEBSITE EPIC furniture (báo cáo cuối kì đồ án 1) (Trang 169 - 170)

III. Xây dựng mô-đun – Building modules

8. Ràng buộc mô hình

Odoo cung cấp hai cách để thiết lập bất biến được xác minh tự động:

Python constraints và SQL constraints.

Một ràng buộc Python được định nghĩa là một phương pháp được trang trí với constrains()và được gọi trên một tập bản ghi. Bộ trang trí chỉ định trường nào có liên quan đến ràng buộc, để ràng buộc được tự động đánh giá khi một trong số chúng được sửa đổi. Phương pháp này dự kiến sẽ đưa ra một ngoại lệ nếu bất biến của nó không được thỏa mãn:

fromodoo.exceptionsimport ValidationError @api.constrains('age')

def_check_something(self): for record in self:

if record.age > 20:

raise ValidationError("Your record is too old: %s" % record.age) # all records passed the test, don't return anything

Bài tập

Thêm ràng buộc Python

Thêm một ràng buộc kiểm tra xem người hướng dẫn không có mặt trong những người tham dự phiên riêng của mình.

Ràng buộc SQL được xác định thông qua thuộc tính mô _sql_constraints. Sau này được gán cho một danh sách ba chuỗi (tên, sql_definition, thông báo), trong đó tên là tên ràng buộc SQL hợp lệ, sql_definition là một biểu thức table_constraint và thông báo là thông báo lỗi.

Bài tập

Thêm ràng buộc SQL

Với sự trợ giúp của PostgreSQL’s documentation ,thêm các ràng buộc sau:

1. KIỂM TRA xem mô tả khóa học và tiêu đề khóa học có khác nhau không

2. Làm cho tên khóa học trở nên ĐỘC ĐÁO

Bài tập

Bài tập 6 - Thêm tùy chọn trùng lặp

Vì chúng tôi đã thêm một ràng buộc cho sự độc đáo của tên khóa học, nên không thể sử

dụng chức năng "trùng lặp" nữa (Form ‣ Duplicate).

Triển khai lại phương pháp "sao chép" của riêng bạn cho phép sao chép đối tượng Khóa học, thay đổi tên gốc thành "Bản sao của [tên gốc]".

Một phần của tài liệu Tìm hiểu ODOO FRAMEWORK và xây dựng ứng dụng thương mại điện tử WEBSITE EPIC furniture (báo cáo cuối kì đồ án 1) (Trang 169 - 170)

Tải bản đầy đủ (PDF)

(183 trang)