2012-06-11 41 views
1

在OpenERP中有沒有什麼辦法獲得刪除記錄列表?我聽說openerp記錄刪除的記錄列表..但我不知道在哪裏瀏覽它..在openerp中刪除記錄列表

我想同步兩個數據庫。因此,我幾乎不需要刪除記錄的型號名稱和編號,這樣我可以從其他數據庫中刪除相應的記錄

回答

2

你可以像基礎上,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會清除該對象,並且鉤子不可用。

此外,您應該定義一個服務器操作,它爲您的複製隊列或日誌保存必要的數據。

祝你好運!

+0

我的回答是openerp v6.0的舊版本。 – OmaL

1

當您單擊從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,所以你可以很容易地使用域訪問它們。

+0

嗨果醬,謝謝你的回覆。我試圖同步兩個數據庫。所以我幾乎不需要刪除記錄的型號名稱和ID,以便我可以從其他數據庫中刪除相應的記錄 – OmaL

+0

Weel在這種情況下,您可以使用ID字段,匹配兩個數據庫的ID唯一ID缺少ID, –

+0

這就是有點困難..因爲有時候我們必須同步5-10個模型,並且這些記錄可能包含數千條記錄..所以搜索每條記錄是耗時的 – OmaL

0

我認爲jam's suggestion是你在任何想要複製的模型上覆蓋unlink()方法,並將刪除的ID記錄到一個單獨的表中。然後您的同步過程可以讀取並清除該表。

如果您只想複製整個數據庫,您也可以查看replication tools at the database level

+0

謝謝唐的回覆。但我得到了答案。 – OmaL

1

我得到了答案。

我繼承的類object_proxy從osv.osv和這裏面有一個名爲執行def execute(self, db, uid, model, method, *args, **kw):我只是重寫此功能,如果該方法是取消鏈接,然後我保存的RECORD_ID和型號,以新功能數據庫中的表