我使用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"/>
答案 0 :(得分:0)
我不知道你是否会觉得这有用,但你为什么不把这个字段隐藏起来:
<field name="id" invisible" />
<field name="your_field" attrs="{'invisible': [('id', '=', False]}"/>
在你的模型类中,只需要从按钮确认调用一个虚拟方法来调用save方法。
@api.multi
def dummy(self):
return True
因此,当用户点击该按钮时,您的字段将可见,因为该记录将具有id的值。