Odoo 在 xml 文件上设置特定域

Odoo set specific domain on xml file

我制作了一个调用视图的自定义按钮:

@api.multi
def split_bot(self):
    view = self.env.ref('purchase_request.view_supply_conditions_tree')
    context = self.env.context
    return {
         'name':blabla',
         'type': 'ir.actions.act_window',
         'view_type': 'form',
         'view_mode': 'tree,form',
         'res_model': 'supply.conditions',
         'views': [(view.id, 'tree')],
         'view_id': view.id,
         'target': 'new',
         'domain': [('purchase_id', '=', self.id)],
         'context': context,
         'flags': {'form': {'action_buttons': True}}
    }

但现在我不需要这个按钮了。我需要在默认情况下打开树视图 "Edit" 单击相同域的按钮:'domain': [('purchase_id', '=', self.id)] 如何在我的 xml 表单中使用相同的域?我试图将域设置为:

出现错误:

name 'self' is not defined

更多信息:

purchase_order_status = fields.One2many('purchase.order', 'request_id', string='Order',copy=True)

purchase_id = fields.Many2one('purchase.request', 'Purchase request')

如何更改 xml 表单中的 self.id 以获得与单击按钮时相同的域?

在 xml 中你不能在网络客户端中使用 self 但你可以在同一视图中使用字段的值所以如果你想在 many2one 字段中使用 id 的值:

<field name="id" invisible="1"/>
<field ... domain="[('field_name', '=', id)]" />

您不能使用 attrsdomain 中的字段或同一视图中不存在的上下文