(yenbao1340@gmail.com) Lập trình Odoo (OpenERP) Phần 4: Các phương thức ORM trong Odoo

28 1.9K 23
(yenbao1340@gmail.com) Lập trình Odoo (OpenERP) Phần 4: Các phương thức ORM trong Odoo

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Lập trình OdooOpenERP Phần 4: Các phương thức ORM trong OdooOpenERPHướng dẫn sử dụng cơ bản các phương thức ORM trong OdooOpenERP bao gồm các phương thức như read, write, create, search, unlinkPHương pháp override các phương thức trên

TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH KHOA CÔNG NGHỆ THÔNG TIN MÃ NGUỒN MỞ LAB_4 ORM METHOD Hướng dẫn: Nguyễn Yên Bảo Điện thoại: Email: nybao@ntt.edu.vn NỘI DUNG Giới thiệu ORM Các phương thức thường dùng ORM Override phương thức ORM Những cải tiến Odoo (v8) 2 NỘI DUNG Giới thiệu ORM Các phương thức thường dùng ORM Override phương thức ORM Những cải tiến Odoo (v8) 3 GIỚI THIỆU VỀ ORM ORM gì?  ORM (Object Relation Mapping) kĩ thuật ánh xạ từ mơ hình hướng đối tượng xuống CSDL quan hệ  Cho phép thao tác table CSDL mà không cần phải quan tâm nhiều đến việc viết câu truy vấn cho lần truy xuất CSDL 4 GIỚI THIỆU VỀ ORM  Ưu điểm  Độc lập hệ quản trị sở liệu  Cung cấp API đơn giản – dễ dùng  Giúp cho thiết kế gần gũi với lập trình viên  Nhược điểm  Các ORM thường tự sinh SQL để select, insert, update, delete…  khó can thiệp sâu để tối ưu hóa  Ảnh hưởng đến hiệu suất  Cấu trúc bảng bên phức tạo lạm dụng việc kế thừa nhiều  Khó khăn việc quản lý session 5 PHƯƠNG THỨC ORM THƯỜNG DÙNG  Odoo framework hỗ trợ nhiều phương thức giúp tương tác với CSDL thực số chức mở rộng  Các đối tượng Odoo thừa kế từ lớp osv.osv nên đối tượng thừa kế tất phương thức ORM  Chúng ta gọi đến phương thức bên đối tượng; tạo thể đối tượng, sau gọi phương thức từ thể 6 PHƯƠNG THỨC ORM THƯỜNG DÙNG  Nếu bên đối tượng thể self  Nếu muốn tạo thể đối tượng khác Chúng ta dùng lệnh self.pool.get('ten_doi_tuong') VD: đối tượng x_sinhvien lại muốn thực phương thức test_method() đối tượng x_khoa Ta thực lệnh self.pool.get(x_khoa').test_method() 7 PHƯƠNG THỨC ORM THƯỜNG DÙNG  Một số tham số thường dùng ORM Tên tham số Ý nghĩa cr uid id người dùng thao tác (current id) id ids list chứa id ghi; số nguyên có id context kết nối sở liệu (con trỏ csdl) dictionaries chứa tham số ngữ cảnh như: ngơn ngữ sử dụng gì, múi gì, model đang sử dụng, id Hoặc thêm ngữ cảnh để xử lý số trường hợp cụ thể Ví dụ: {'lang': 'en_US', ‘khongdcxoa’:True } PHƯƠNG THỨC ORM THƯỜNG DÙNG  Một số phương thức thường dùng Odoo Tên p.thức Ý nghĩa Browse Read Lấy số field định record truyền vào (Tương đương với SQL: SELECT cot1,cot2 FROM model WHERE id=…) Create Tạo ghi với giá trị truyền vào (tương đương với button CreateSave giao diện lệnh INSERT SQL) Write Cập nhật thông tin cho ghi có id danh sách ids truyền vào ( với button EditSave lệnh UPDATE) Unlink Xóa ghi có id nằm danh sách ids truyền vào Search Tìm số ghi thỏa mãn điều kiện mà truyền vào Copy Trả ghi (record) dạng đối tượng list đối tượng; cho phép truy xuất tới trường (field) quan hệ đối tượng cách dùng kí pháp dấu '.' Tạo ghi; số trường lấy giá trị mặc định mà ta định sẵn ( với button Duplicate) PHƯƠNG THỨC ORM THƯỜNG DÙNG 2.1 Browse  Input - ID danh sách ID record cần truy xuất  Output - Các record dạng đối tượng list record dạng đối tượng  Cú pháp - browse(cr, uid, ids,context=context) 10 10 PHƯƠNG THỨC ORM THƯỜNG DÙNG 2.3 Create  Input - Một dictionary record mà muốn thêm vào - Với key tên field value giá trị field  Output - ID record vừa tạo  Cú pháp - create(cr, uid, vals, context=context) - Với vals dictionary 14 14 PHƯƠNG THỨC ORM THƯỜNG DÙNG 2.3 Create  Ví dụ Giả xử thực code đối tượng x_sinhvien - Thực bên đối tượng vals = {'mssv':'1000', 'name':'nguyễn yên bảo'} new_id = self.create(cr,uid,vals,context=context) print new_id - Thực cho đối tượng bên nganh_obj = self.pool.get('x_nganh') vals = {'msnganh':'2000', 'name':'CNTT'} nganh_id = nganh_obj.create(cr,uid,vals,context=context) print nganh_id 15 15 PHƯƠNG THỨC ORM THƯỜNG DÙNG 2.4 Write  Input - ID danh sách ID record cần cập nhật - Một dictionaries với key tên field cần cập nhật values giá trị cần cập nhật  Output - True/False  Cú pháp - write(cr, uid, ids, vals, context=context) 16 16 PHƯƠNG THỨC ORM THƯỜNG DÙNG 2.4 Write  Ví dụ Giả xử thực code đối tượng x_sinhvien - Thực bên đối tượng ids = [4,5] vals = {'gioitinh':'nam'} self.write(cr,uid,ids,vals,context=context) - Thực cho đối tượng bên nganh_obj = self.pool.get('x_nganh') ids = [10,15] vals = {‘name':‘Quản trị kinh doanh'} nganh_obj.write(cr,uid,ids,vals,context=context) 17 17 PHƯƠNG THỨC ORM THƯỜNG DÙNG 2.5 Unlink  Input - ID danh sách ID record muốn xóa  Output - True/False  Cú pháp - unlink(cr, uid, ids, context=context) 18 18 PHƯƠNG THỨC ORM THƯỜNG DÙNG 2.5 Unlink  Ví dụ Giả xử thực code đối tượng x_sinhvien - Thực bên đối tượng ids = [4,5] self.unlink(cr, uid, ids, context=context) - Thực cho đối tượng bên nganh_obj = self.pool.get('x_nganh') ids = [10,15] nganh_obj.unlink(cr, uid, ids, context=context) 19 19 PHƯƠNG THỨC ORM THƯỜNG DÙNG 2.6 Copy  Input - ID record cần nhân (Chỉ có ID) - Một dictionaries với key tên field key giá trị mặc định Sau copy trường liệu có giá trị giống cũ, khác field mà ta dictionaries (defaults)  Output - True/False 20  Cú pháp - copy(cr, uid, id, defaults, context=context) 20 PHƯƠNG THỨC ORM THƯỜNG DÙNG 2.6 Copy  Ví dụ Giả xử thực code đối tượng x_sinhvien - Thực bên đối tượng defaults = {'nganh':10} id = 12 self.copy(cr, uid, id, defaults,context=context) - Thực cho đối tượng bên nganh_obj = self.pool.get('x_nganh') id = 15 defaults = {'diachi':'Nguyễn Khoái'} nganh_obj.copy(cr, uid, id, defaults, context=context) 21 21 PHƯƠNG THỨC ORM THƯỜNG DÙNG 2.7 Search  Input - args: list tuple chứa tiêu chí tìm kiếm ['|', ('id', 'in', [1,2,3]), ('name', 'like', 'Nguyễn%')] 22 - Các option input • offset: bắt đầu lấy record từ vị trí • limit: giới số lượng record trả • order: xếp thứ tự record • count: True, trả số lượng record tìm thấy (Khơng trả ids) • Các tốn tử: =, !=, >, >=,

Ngày đăng: 11/07/2015, 20:39

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan