我有一个带有Many2many
字段的表单,并且将其显示为树状视图:
通过点击上述Many2many
字段中的一条记录,可以在模态面板中按预期方式抬起相应模型的形式:
我找不到一种方法来单击Many2many
字段的记录,而不是取消向导,我将拥有与该Many2many
字段的模型相对应的表单视图,而没有弹出一个弹出窗口。换句话说,就是这样:
有什么建议吗?
答案 0 :(得分:1)
您可以在模型上编写操作方法,并扩展显示为按钮的树状视图。此方法应返回一个操作,该操作将在窗体视图中打开记录。使用当前的Odoo框架,这是唯一的“简便”方法。
一个小例子:
class MyModel(models.Model):
_name = 'my.model'
name = fields.Char()
class MyOtherModel(models.Model)
_name = 'my.other.model'
name = fields.Char
my_model_ids = fields.Many2many(
comodel_name='my.model')
@api.multi
def action_show_record(self):
# only use on singletons
self.ensure_one()
return {
'name': self.name,
'type': 'ir.actions.act_window',
'view_type': 'form',
'view_mode': 'form',
'res_model': 'my.model',
'context': self.env.context,
# don't open a popup
'target': 'current'
}
以及my.other.model的视图
<record id="my_other_model_view_form" model="ir.ui.view">
<field name="name">my.other.model.view.form</field>
<field name="model">my.other.model</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="name" />
<field name="my_model_ids">
<tree>
<field name="name" />
<button name="action_show_record" type="object"
string="Open" icon="an-font-awesome-icon" />
</tree>
</field>
</group>
</sheet>
</form>
</field>
</record>