Odoo 10 - 在创建记录之前可在树视图上单击按钮

时间:2017-04-24 16:07:16

标签: listview button openerp

我使用Odoo 10 我尝试在表单视图中的 many2one 树内创建一个按钮,一旦初始化一行就可以单击。

问题是该行(客户端)的 id 类型为' one2many_v_id_xxx' ,直到我保存记录。因此, ListView 小部件在创建记录时将按钮设置为禁用
结果:我只能在创建记录后单击该按钮。

我已经阅读了一些关于在 onchange 方法中创建行的帖子,但我已经了解了与表单视图相关联的模型 ,所以我无法在创建实际记录之前创建该行。

有人有解决方案吗?

提前致谢。

PY:

@api.multi
@api.onchange('product_template_id')
def product_template_id_change(self):

    < some operations >

    self.create(vals) # It gives me a validation error about 'order_id', a many2one relation with the model linked to the form view

    self.update(vals)

查看:

<button type="object" name="open_grid_wizard"
        string="Open product variant grid"
        icon="fa-table"
        class="oe_stat_button"/>

1 个答案:

答案 0 :(得分:0)

我不知道你是否会觉得这有用,但你为什么不把这个字段隐藏起来:

<field name="id" invisible" />
<field name="your_field" attrs="{'invisible': [('id', '=', False]}"/>

在你的模型类中,只需要从按钮确认调用一个虚拟方法来调用save方法。

@api.multi
def dummy(self):
  return True

因此,当用户点击该按钮时,您的字段将可见,因为该记录将具有id的值。