在OpenERP6.1中单击保存按钮(在附带的屏幕截图中标记为红色)时,会调用哪个函数?
提前感谢!

发布于 2013-01-08 01:33:20
为了详细说明DReispt的答案,您的屏幕截图似乎突出显示了现有记录表单的One2Many字段中的可编辑One2Many行的保存按钮。RPC行被视为其父记录的子记录,因此它们应该与其余记录数据一起自动保存(在单个One2Many调用中)。
从这个意义上说,屏幕截图上突出显示的保存按钮不会直接调用服务器上的任何方法,它只是将更改保存在浏览器的本地缓存中。真正的调用create (如果这是一个新记录)或write (如果记录正在更新)只有在您之后单击父记录窗体的主保存按钮时才会完成。
此时,该行的值将在One2Many命令列表中提供给create/write的值映射中传递。有关设置One2Many字段的值的更多信息,另请参阅write文档。
顺便说一句,在OpenERP中调查RPC调用非常简单:
--log-level=debug_rpc_answer参数启动openerp-server进程,以获得所有调用的详细日志记录。在web客户端,您可以简单地使用web浏览器的调试器来监视所有的
注意:以上内容并非特定于OpenERP 6.1,它在7.0中的工作方式相同(尽管6.0及更早版本的web客户端对one2many字段有不同的行为)
发布于 2013-01-07 23:50:52
保存按钮将为该模型运行一个ORM method。对于新记录,这是create()方法,对于更新的记录,它是update()方法。
这些标准方法可以在模型中被覆盖,以便实现其他功能。
发布于 2013-01-08 13:33:35
您的模型是orm.Model'. There are methods in类BaseModel(BaseModel is inherited by Model) which will be call for the保存记录的子类。这些方法是
def create(self, cr, user, vals, context=None)如果您想要更改任何模型的任何行为,那么您必须覆盖此方法。
https://stackoverflow.com/questions/14197116
复制相似问题