Bài học

Bài học thuộc : Odoo tip Trạng thái bài học : Chưa hoàn thành

Cách xóa bản ghi bằng mã XML trong Odoo

XML là viết tắt của Extensible Markup Language, là một ngôn ngữ đánh dấu xác định một tập hợp các quy tắc để mã hóa tài liệu. Tài liệu XML có thể được đọc bởi con người và có thể đọc được bằng máy tính. XML khá giống HTML. XML được sử dụng để lưu trữ và vận chuyển dữ liệu và cũng được thiết kế để tự mô tả. Chúng ta đang sử dụng các mã XML để tạo các khung nhìn Odoo. Các tệp dữ liệu trong Odoo cũng được xác định bằng XML. Như chúng ta đã biết, chúng ta có thể xóa các bản ghi khỏi giao diện người dùng (bằng cách sử dụng nút xóa trong hành động trong bản ghi) hoặc bằng một hàm python. Giả sử bạn cần xóa bản ghi khỏi cơ sở dữ liệu hoặc cài đặt một số mô-đun tùy chỉnh, vì vậy trong trường hợp đó, bạn cần viết thêm một số trường và để mô-đun hoạt động bình thường, bạn có thể cần xóa một số bản ghi khỏi cơ sở dữ liệu. Vì vậy, đó có thể là trường hợp khi bạn cần xóa các bản ghi. Bài viết này giải thích cách xóa bản ghi trong cơ sở dữ liệu bằng mã XML. Chúng ta biết cách tạo và cập nhật các bản ghi từ các tệp XML. Nhưng trong trường hợp các mô-đun phụ thuộc, đôi khi chúng ta cần xóa các bản ghi đã tạo trước đó khỏi tệp XML. Trong trường hợp đó, chúng ta có thể sử dụng thẻ <delete>. Vì vậy, chúng ta hãy xem nó hoạt động như thế nào. Có hai cách để xóa các bản ghi bằng XML như sau:

1. Sử dụng ID XML

Trong cách xóa bản ghi bằng XML này, bạn phải thực hiện theo cú pháp như dưới đây:

<delete model = "your model name" id = "XML ID của bản ghi" />

Ở đây bạn phải chỉ định id, là ID XML của các bản ghi đã được tạo trước đó từ các tệp dữ liệu của mô-đun khác. Và bạn cũng phải chỉ định thuộc tính model trong thẻ, đó là model chứa bản ghi cần xóa. Thuộc tính model là một thuộc tính bắt buộc để xóa bản ghi. Vì vậy, trong khi chạy mã trên (hoặc trong khi cài đặt mô-đun tùy chỉnh của bạn) odoo sẽ tìm thấy bản ghi bằng cách sử dụng ID XML mà bạn đã cung cấp. Nếu có bất kỳ bản ghi nào tương ứng với ID XML đã cho, nó sẽ xóa bản ghi đó. Và giả sử nó không tìm thấy bất kỳ bản ghi phù hợp nào thì nó sẽ gây ra lỗi. Bạn chỉ có thể xóa các bản ghi được tạo từ các tệp XML (hoặc các bản ghi có ID XML).

2. Sử dụng miền tìm kiếm

Trong phương pháp này, bạn cần cung cấp miền trong thuộc tính domain. Vì vậy, trong quá trình cài đặt các mô-đun tùy chỉnh của bạn, odoo sẽ cố gắng tìm các bản ghi dựa trên miền mà bạn đã cung cấp. Nếu các bản ghi được tìm thấy, odoo sẽ xóa các bản ghi phù hợp đó. So với phương pháp trước, phương pháp này sẽ không phát sinh lỗi nếu không tìm thấy bản ghi nào phù hợp với miền đã cho. Vì vậy, trong khi sử dụng phương pháp này, bạn phải cẩn thận hơn vì nó sẽ xóa dữ liệu của người dùng của bạn vì tùy chọn tìm kiếm sẽ xóa tất cả các bản ghi khớp với miền. 

Giả sử nếu bạn muốn xóa các bản ghi của model sale.order nếu có khách hàng là ‘Azure Interior’, hãy làm như sau:

<delete model = “sale.order” search [(partner_id.name, '=', 'Azure Interior')] />

Trong odoo, xóa rất hiếm khi được sử dụng vì nó trở nên nguy hiểm trong nhiều trường hợp. Bạn có thể đọc thêm về XML trong Odoo từ các viết khác của chúng tôi.



Tags:


Gắn sao :  

Tác giả : admin admin

`
×