在OpenERP6.1中单击保存按钮(在附加的屏幕截图中标记为红色)时调用了哪个函数?
提前致谢!!!
答案 0 :(得分:7)
为了详细说明DReispt的答案,您的屏幕截图似乎突出显示了现有记录表单的One2Many字段中可编辑One2Many行的保存按钮。 One2Many行被视为其父记录的子记录,因此它们应该与其他记录数据一起保存,原子地(在单个RPC调用中)。
从这个意义上说,屏幕截图中突出显示的保存按钮不直接调用服务器上的任何方法,它只是将更改保存在浏览器的本地缓存中。 真实调用create
(如果这是新记录)或write
(如果记录正在更新)只会在您点击主之后保存父记录表格的按钮。
此时,该行的值将在One2Many命令列表中提供给create
/ write
的值的映射中传递。有关为One2Many字段设置值的详细信息,另请参阅write
的文档。
openerp-server
参数启动--log-level=debug_rpc_answer
进程,以获取所有RPC调用的详细日志记录注意:以上内容并非特定于OpenERP 6.1,它在7.0中的工作方式相同(尽管6.0和早期版本的Web客户端对于one2many字段有不同的行为)
答案 1 :(得分:1)
保存按钮将为该模型运行ORM method。对于新记录,这是create()
方法,对于更新的记录,它是update()
方法。
可以在模型中覆盖这些标准方法,以实现其他功能。
答案 2 :(得分:0)
您的模型是orm.Model'. There are methods in
类BaseModel (BaseModel is inherited by Model) which will be call for the
save`记录的子类。这些方法是
def create(self, cr, user, vals, context=None)
如果要更改任何模型的任何行为,则必须覆盖此方法。