28/04/2026
🕵️ CÁCH "GHI ĐÈ" (OVERRIDE) FUNCTION MÀ KHÔNG LÀM HỎNG CORE: NGHỆ THUẬT CỦA MỘT ODOO DEVELOPER THỰC THỤ
Trong giới lập trình Odoo, có một quy tắc "bất di bất dịch" mà bất cứ ai tại Vinc Academy cũng phải thuộc lòng: ĐỪNG BAO GIỜ CHẠM VÀO SOURCE CODE GỐC (CORE)!
Tại sao? Vì khi bạn sửa trực tiếp vào Core, hệ thống của bạn sẽ trở thành một "quả bom nổ chậm":
❌ Không thể nâng cấp (Upgrade) lên phiên bản mới.
❌ Lỗi hệ thống dây chuyền mà không biết nguyên nhân từ đâu.
❌ Mất dấu vết các tùy chỉnh khi nhiều người cùng tham gia dự án.
Vậy làm thế nào để thay đổi hành vi của một tính năng có sẵn (ví dụ: Thay đổi cách tính tổng tiền đơn hàng)? Câu trả lời chính là: Kế thừa và Ghi đè (Inheritance & Overriding).
🛠️ "BÍ KÍP" OVERRIDE CHUẨN PRO TRONG 3 BƯỚC:
1. Sử dụng _inherit
Đây là chiếc chìa khóa vạn năng. Thay vì tạo Model mới, chúng ta sử dụng _inherit để báo cho Odoo biết: "Tôi muốn mượn Model cũ và thêm thắt một chút".
2. Kế thừa phương thức (Super)
Đây là bước quan trọng nhất để không làm hỏng Core. Khi bạn viết lại một hàm, đừng quên gọi super().
Cú pháp: res = super(ClassName, self).function_name(args)
Ý nghĩa: Bạn cho phép code gốc chạy trước để lấy kết quả, sau đó bạn mới dùng kết quả đó để tùy biến thêm theo ý mình.
3. Xử lý logic mới
Sau khi có kết quả từ super(), giờ là lúc bạn "múa" theo yêu cầu của khách hàng. Thêm chiết khấu, thay đổi trạng thái, hay gửi một email thông báo... tất cả đều nằm ở đây.
🚀 TẠI VINC ACADEMY, CHÚNG TÔI DẠY BẠN TƯ DUY "KIẾN TRÚC"
Việc nắm vững kỹ thuật này giúp bạn:
✅ Xây dựng các Module độc lập, dễ dàng cài đặt hoặc gỡ bỏ.
✅ Trở thành người "Hacker" tử tế: Thay đổi mọi thứ nhưng vẫn giữ hệ thống an toàn, nguyên bản.
✅ Nâng cao giá trị bản thân trong mắt các nhà tuyển dụng ERP lớn.
⭐ VINC ACADEMY – Truyền cảm hứng – Học đúng – Dẫn đầu
🔥 BẠN MUỐN LÀM CHỦ ODOO FRAMEWORK? Tham gia ngay cộng đồng của mình để nhận trọn bộ "Odoo Inheritance Cheat Sheet" - Giúp bạn phân biệt rõ khi nào dùng _inherit, khi nào dùng _inherits nhé!
☎ Hotline: 0363 729 276