Tài liệu ràng buộc Python

Giới thiệu khả năng thêm một số logic nghiệp vụ vào mô hình của chúng tôi. Bây giờ chúng tôi có thể liên kết các nút với mã doanh nghiệp, nhưng làm cách nào để ngăn người dùng nhập dữ liệu không chính xác?

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

SQL

Thẩm quyền giải quyết. tài liệu liên quan đến chủ đề này có thể được tìm thấy trong và trong tài liệu của PostgreSQL

Ghi chú

Mục tiêu. ở cuối phần này

  • Số tiền phải [đúng] dương

  • Các loại thuộc tính và thẻ phải có một tên duy nhất

Các ràng buộc SQL được xác định thông qua thuộc tính mô hình _sql_constraints. Thuộc tính này được gán một danh sách các bộ ba chứa chuỗi [name, sql_definition, message], trong đó name là tên ràng buộc SQL hợp lệ, sql_definition là biểu thức ràng buộc bảng và message là thông báo lỗi

Bạn có thể tìm thấy một ví dụ đơn giản

Bài tập

Thêm các ràng buộc SQL

Thêm các ràng buộc sau vào các mô hình tương ứng của chúng

  • Giá dự kiến ​​​​của một tài sản phải hoàn toàn tích cực

  • Giá bán bất động sản phải dương

  • Giá chào bán phải hoàn toàn tích cực

  • Tên thẻ thuộc tính và tên loại thuộc tính phải là duy nhất

Mẹo. tìm kiếm từ khóa unique trong cơ sở mã Odoo để biết các ví dụ về tên duy nhất

Khởi động lại máy chủ với tùy chọn

from odoo.exceptions import ValidationError

...

@api.constrains['date_end']
def _check_date_end[self]:
    for record in self:
        if record.date_end 

Chủ Đề