nguyên lý hoạt động modul python odoo
Dựa vào hình ảnh bạn gửi, bạn đã tạo một cấu trúc thư mục module Odoo chuẩn mực cho phiên bản Odoo 19.0 với tên thư mục là cong_van (Quản lý Công văn).
Dưới đây là giải thích chi tiết về cơ chế hoạt động của module này và quy trình chuẩn để Odoo nhận diện, cài đặt hoàn toàn hợp lệ:
I. Cơ chế hoạt động của các thành phần trong module cong_van
Odoo hoạt động theo mô hình MVC (Model - View - Controller). Cấu trúc thư mục của bạn đang tuân thủ chặt chẽ mô hình này để tương tác với lõi Odoo:
__manifest__.py(Hồ sơ đăng ký):Nhiệm vụ: Đây là "chứng minh thư" của module. Khi Odoo quét thư mục
addons, nó sẽ đọc file này đầu tiên.Cơ chế: Odoo dựa vào đây để biết tên hiển thị của app, tác giả, phiên bản, module này có phụ thuộc vào module nào khác không (
depends), và đặc biệt là danh sách các file giao diện cần nạp (data). Nếu thiếu file này, Odoo sẽ bỏ qua thư mụccong_vanvà coi như nó không tồn tại.
__init__.py(Cổng kết nối Python):Nhiệm vụ: Đây là file khởi tạo của Python. Khi Odoo chạy, nó sẽ import thư mục
cong_vannhư một gói phần mềm (package).Cơ chế: File
__init__.pyở ngoài cùng sẽ gọifrom . import models. Tiếp theo, file__init__.pynằm bên trong thư mụcmodelslại tiếp tục gọi các file code Python cụ thể (ví dụ:from . import cong_van_model). Nhờ chuỗi liên kết này, Odoo sẽ nạp được toàn bộ logic code của bạn vào bộ nhớ.
Thư mục
models/(Cơ sở dữ liệu & Logic):Nhiệm vụ: Chứa các file Python định nghĩa cấu trúc bảng dữ liệu (Table) của Công văn (ví dụ: Số công văn, Trích yếu, Ngày ký, Người ký...).
Cơ chế: Odoo sử dụng một công cụ gọi là ORM (Object-Relational Mapping). Khi bạn viết code Python kế thừa từ
models.Model, Odoo sẽ tự động dịch đoạn code đó thành câu lệnh SQL để tự động tạo bảng dữ liệu mới trong database PostgreSQL của bạn mà bạn không cần phải vào database tạo thủ công.
Thư mục
views/(Giao diện người dùng):Nhiệm vụ: Chứa các file XML định nghĩa cách dữ liệu hiển thị lên màn hình trình duyệt (Giao diện danh sách - Tree view, Giao diện chi tiết - Form view, Thanh tìm kiếm - Search view, và Nút bấm Menu).
Cơ chế: Khi module được cài đặt, Odoo sẽ đọc các file XML này và lưu cấu trúc giao diện vào một bảng hệ thống trong database (bảng
ir.ui.view). Khi người dùng click vào menu "Công văn", Odoo sẽ lấy giao diện đã lưu này ra để render thành HTML/CSS hiển thị trên trình duyệt.
II. Làm sao để add vào Odoo nhận và "Hoàn toàn hợp lệ"?
Để Odoo 19.0 nhận diện module cong_van này một cách hợp lệ và không bị lỗi, bạn cần làm đúng theo 4 bước kiểm tra và kích hoạt sau:
Bước 1: Đảm bảo nội dung các file cấu trúc đúng cú pháp
File
cong_van/__manifest__.pycủa bạn phải khai báo đường dẫn giao diện chính xác trong mục'data'. Ví dụ:Python'data': [ 'views/cong_van_view.xml', # Tên file XML thực tế bạn đặt trong thư mục views ],Nếu module của bạn có phân quyền hoặc các tính năng đặc biệt, hãy chắc chắn rằng bạn không viết sai chính tả (syntax error) trong các file Python, vì nếu có lỗi Python, Odoo sẽ bị crash (sập) ngay khi khởi động lại.
Bước 2: Cấp quyền thư mục (Nếu chạy trên môi trường đặc biệt)
Hiện tại đường dẫn của bạn là
C:\Program Files\Odoo 19.0...\server\addons\cong_van. Do nằm trong ổC:\Program Fileslà phân vùng bảo mật của Windows, bạn hãy đảm bảo user chạy dịch vụ Odoo có quyền đọc (Read) thư mục này (Thông thường chạy trên Windows Local thì mặc định đã nhận).
Bước 3: Khởi động lại (Restart) Dịch vụ Odoo
Vì Odoo nạp code Python vào RAM lúc khởi động, nên mọi thay đổi về thư mục/file Python đều yêu cầu phải khởi động lại server.
Bấm tổ hợp phím
Windows + R, gõservices.mscrồi nhấn Enter.Tìm dịch vụ có tên dạng
odoo-serverhoặcOdoo 19.0.Click chuột phải chọn Restart (Khởi động lại).
Bước 4: Kích hoạt trên Giao diện Web Odoo
Đăng nhập vào Odoo bằng tài khoản Admin.
Vào Settings (Cài đặt) -> Kéo xuống dưới cùng click vào Activate the developer mode (Kích hoạt chế độ nhà phát triển) để bật quyền năng của Developer.
Quay lại Menu chính, vào mục Apps (Ứng dụng).
Nhìn lên thanh menu ngang phía trên, click vào nút Update Apps List (Cập nhật danh sách ứng dụng) -> Bấm Update. Hành động này bắt buộc Odoo quét lại thư mục
addonsđể tìm ra thư mụccong_vanmới thêm vào.Tại thanh tìm kiếm của Apps, xóa bỏ bộ lọc mặc định tên là "Apps" (bằng cách bấm dấu x).
Gõ tìm kiếm
cong_vanhoặc tên app bạn đặt trong manifest.Bấm nút Activate (Kích hoạt / Cài đặt).
Sau khi cài đặt thành công, Odoo sẽ tự tạo bảng trong database, nạp giao diện XML và hiển thị menu "Công văn" lên màn hình cho bạn sử dụng hoàn toàn hợp lệ!

