我所获得的是简单的一对多字段和一个Html字段,这是在更改one2many字段时计算的。
requirements = fields.One2many('cust.req', 'templ_id')
comment = fields.Html(compute='do_smth')
@api.depends('requirements')
def do_smth(self)
....
当我填写one2many字段并点击保存时,一切都很好。但在我的表格中,我也有按钮' view'它将一些字段值传递给其他形式并打开它。
template_comment = self.env['customer.comment.v'].search([('tmpl_id','=',self.id)])
return {
'name': _('Customer Req Comments'),
'type': 'ir.actions.act_window',
'res_model': 'customer.comment.v',
'view_type': 'form',
'view_mode': 'form',
'view_id':
self.env.ref('tmpl_data.magnus_order_tmpl_comment_form').id,
'target': 'new',
'res_id': new_comment.id,
}
所以,让我说我之前已经有一个填充了三行的One2many字段。然后我回到我的表单添加额外的第4行,单击按钮视图打开其他表单,然后关闭该表单并保存父表单,其他第4条记录将被复制。我认为这是因为当我点击随机按钮时查看' write方法被称为one,当我单击save按钮时,再次以相同的值调用write方法。所以最后还要复制其他行。
我的问题是我该如何避免这样的事情发生? 谢谢你的时间!!
答案 0 :(得分:0)
在同一种方法中,您应该在另一个视图中转到您的班级并使用它们。
`x_line = self.env['customer.comment.v']`
`x_delete = x_line.search([('tmpl_id','=',self.id)]).unlink()`
x_delete
会删除先前的注册,如果相同的话。