在OpenERP中有沒有什麼辦法獲得刪除記錄列表?我聽說openerp記錄刪除的記錄列表..但我不知道在哪裏瀏覽它..在openerp中刪除記錄列表
我想同步兩個數據庫。因此,我幾乎不需要刪除記錄的型號名稱和編號,這樣我可以從其他數據庫中刪除相應的記錄
在OpenERP中有沒有什麼辦法獲得刪除記錄列表?我聽說openerp記錄刪除的記錄列表..但我不知道在哪裏瀏覽它..在openerp中刪除記錄列表
我想同步兩個數據庫。因此,我幾乎不需要刪除記錄的型號名稱和編號,這樣我可以從其他數據庫中刪除相應的記錄
你可以像基礎上,base_action_rule模型replication_automated_rule。請在addons/base_action_rule/base_action_rule.py查找代碼。
一種行動規則鏈接服務器操作到對象(一個給定的模型),該完成給定的條件(由過濾器定義)。動作規則非常易於使用,即使在管理界面上也是如此。
的對象都被檢查的創作和更新,但你可以從base_action_rule繼承和定義檢查上刪除也。它的工作原理是創建定製包裝到創建和編寫方法的模型對象的內存表示被告知工作。您將需要基於_wrap_create添加_wrap_unlink方法,並增加了一行_register_hook:
model_obj.unlink = self._wrap_unlink(model_obj.unlink, model)
的包裝方法內_wrap_create和_wrap_update執行掛鉤執行後的正常功能。當你在_wrap_unlink中定義包裝方法時,在unlink的正常函數之前應該注意執行鉤子,因爲unlink會清除該對象,並且鉤子不可用。
此外,您應該定義一個服務器操作,它爲您的複製隊列或日誌保存必要的數據。
祝你好運!
當您單擊從UI刪除的OpenERP可以訪問ORM Menthod UNLINK
原型OD方法是:
def unlink(self, cr, uid, ids, context=None)
"""
#Delete records with given ids
Param cr: database cursor
Param uid: current user id
Param ids: id or list of ids
Param context: (optional) context arguments, like lang, time zone
Return : True
Raise AccessError:
if user has no unlink rights on the requested object
if user tries to bypass access rules for unlink on the requested object
Raise UserError:
if the record is default property for other records
"""
在這裏,Ids包含要取消鏈接的ID列表,因此在刪除之前您可以使用它們進行播放。
但是,如果記錄從OpenERP中刪除一次,則不能訪問,因爲它們不在db中。
可選,此處的機制可能有用的是active
字段。如果您在模型中定義了活動的布爾型字段,並且如果任何記錄設置爲活動false,yo無法在沒有特別努力的情況下在視圖上看到該記錄,但是OE中的活動字段是特殊字段,但棘手的部分是您仍然擁有活動表= False,所以你可以很容易地使用域訪問它們。
我認爲jam's suggestion是你在任何想要複製的模型上覆蓋unlink()
方法,並將刪除的ID記錄到一個單獨的表中。然後您的同步過程可以讀取並清除該表。
如果您只想複製整個數據庫,您也可以查看replication tools at the database level。
謝謝唐的回覆。但我得到了答案。 – OmaL
我得到了答案。
我繼承的類object_proxy從osv.osv和這裏面有一個名爲執行,def execute(self, db, uid, model, method, *args, **kw):
我只是重寫此功能,如果該方法是取消鏈接,然後我保存的RECORD_ID和型號,以新功能數據庫中的表
我的回答是openerp v6.0的舊版本。 – OmaL