openerp中已删除记录的列表
有没有办法在OpenERP中获取已删除记录的列表?我听说openerp记录了删除的记录列表。。但是我不知道在哪里可以找到它openerp中已删除记录的列表,openerp,Openerp,有没有办法在OpenERP中获取已删除记录的列表?我听说openerp记录了删除的记录列表。。但是我不知道在哪里可以找到它 我正在尝试同步两个数据库。因此,我几乎不需要删除记录的型号名称和id,这样我就可以从其他数据库中删除相应的记录当您在openerp中单击“从UI中删除”时,您可以访问ORM Menthod取消链接原型od方法是: def unlink(self, cr, uid, ids, context=None) """ #Delete records with giv
我正在尝试同步两个数据库。因此,我几乎不需要删除记录的型号名称和id,这样我就可以从其他数据库中删除相应的记录当您在openerp中单击“从UI中删除”时,您可以访问ORM Menthod
取消链接
原型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
"""
此处ID包含要取消链接的ID列表,以便在删除之前可以使用它们
但若记录一旦从OpenERP中删除,您就无法访问,因为它们不再位于数据库中
可选,此处的机制在
活动
字段中可用。OE中的活动字段是特殊字段如果您在模型上定义了活动布尔字段,那么如果任何记录设置为活动false,您将无法在视图中看到该记录,无需特别努力,但棘手的是,表中的记录仍然是active=False,因此您可以使用domain非常轻松地访问它们。当您在openerp中单击“从UI中删除”时,您可以访问ORM Menthod取消链接
原型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
"""
此处ID包含要取消链接的ID列表,以便在删除之前可以使用它们
但若记录一旦从OpenERP中删除,您就无法访问,因为它们不再位于数据库中
可选,此处的机制在活动
字段中可用。OE中的活动字段是特殊字段如果您在模型上定义了活动布尔字段,那么如果任何记录设置为活动false,您将无法在视图中看到该记录,无需特别努力,但棘手的是,表中的记录仍然是active=False,因此您可以使用domain非常轻松地访问它们。我认为您可以在任何要复制的模型上覆盖unlink()
方法,并将删除的ID记录到单独的表中。然后同步进程可以读取并清除该表
如果只想复制整个数据库,您还可以进行研究。我认为您可以在任何要复制的模型上覆盖unlink()
方法,并将删除的ID记录到一个单独的表中。然后同步进程可以读取并清除该表
如果您只是想复制整个数据库,您还可以进行调查。我得到了答案
我从osv.osv继承了类object\u proxy,其中有一个名为execute,def execute(self、db、uid、model、method、*args、**kw):
我只是重写了这个函数,如果方法被取消链接,那么我将记录id和模型名称保存到数据库中的一个新表中我得到了答案
我从osv.osv继承了类object\u proxy,其中有一个名为execute,
def execute(self、db、uid、model、method、*args、**kw):
我只是重写了这个函数,如果该方法被取消链接,则我将该记录id和模型名称保存到数据库中的一个新表中您可以基于基本操作规则模型创建类似于复制的自动化规则。在插件/base\u action\u rule/base\u action\u rule.py中查找代码
操作规则将服务器操作链接到完成给定条件(由过滤器定义)的对象(给定模型)。操作规则非常易于使用,即使在管理界面上也是如此
对象在创建和更新时被检查,但您可以从基本动作规则继承,并在删除时定义检查。它的工作方式是为create和write方法创建自定义包装器,用于模型对象在其上的内存表示。您需要添加一个基于\u wrap\u create的\u wrap\u unlink方法,并在\u register\u hook中添加一行:
model_obj.unlink = self._wrap_unlink(model_obj.unlink, model)
\u wrap\u create和\u wrap\u update中的wrapper方法在执行其正常功能后执行挂钩。当您在\u wrap\u unlink中定义wrapper方法时,您应该注意在正常的unlink函数之前执行钩子,因为unlink会擦除对象,并且钩子不可用
此外,您还应该定义一个服务器操作,用于保存复制队列或日志所需的数据
祝你好运 您可以基于基本操作规则模型制作类似于复制的自动化规则。在插件/base\u action\u rule/base\u action\u rule.py中查找代码 操作规则将服务器操作链接到完成给定条件(由过滤器定义)的对象(给定模型)。操作规则非常易于使用,即使在管理界面上也是如此 对象在创建和更新时被检查,但您可以从基本动作规则继承,并在删除时定义检查。它的工作方式是为create和write方法创建自定义包装器,用于模型对象在其上的内存表示。您需要添加一个基于\u wrap\u create的\u wrap\u unlink方法,并在\u register\u hook中添加一行:
model_obj.unlink = self._wrap_unlink(model_obj.unlink, model)
\u wrap\u create和\u wrap\u update中的wrapper方法在执行其正常功能后执行挂钩。在\u wrap\u unlink中定义wrapper方法时,应注意执行