检查某些条件后如何使按钮在 odoo 中可见?

How to make buttons visible in odoo after checking some condition?

<button string="Merge" name="merge_beneficiaries" type="object" class="oe_highlight" 
attrs="{'invisible': ['|', '|', ('stage_id', '!=', 2),('active', '=', False)]}"/>

我有这个按钮,并且只希望在 many2many 字段中存在一些 id 时显示 'duplicate_beneficiaries__ids'。

duplicate_beneficiaries_ids = fields.Many2many(
        "openg2p.beneficiary",
        string='Potential Duplicates'
    )

我们可以这样做

attrs="{'invisible': [('duplicate_beneficiaries_ids', '=', False)]}"

而JFI,我们可以使用name like

,而不是在attrs上使用id

attrs="{'invisible': ['|', ('stage_id.name', '!=', 'Stage Name'), ('active', '=', False)]}"

如果 Bhavesh Odedra 的回答无效,您可以在模型中创建另一个布尔计算字段以在 python 代码中应用按钮查看逻辑,例如:

    view_merge_beneficiaries = fields.Boolean(compute='_get_view_merge_beneficiaries')

    def _get_view_merge_beneficiaries(self):
        for record in self:
            record.view_merge_beneficiaries = bool(record.duplicate_beneficiaries_ids)
    
    <field name="view_merge_beneficiaries" invisible="1" />
    <button string="Merge" name="merge_beneficiaries" type="object" class="oe_highlight" 
attrs="{'invisible': [('view_merge_beneficiaries', '=', False)]}"/>