如何在Odoo 10的搜索视图域中模拟“ self.env.ref”?

问题描述 投票:2回答:1

我正在尝试在具有域的搜索视图中进行过滤,具体取决于我具有XML ID的特定记录的属性。问题是在这种情况下我不知道如何获取对象和使用其属性。

这是我想要的,但是会引发错误“ ref unknown”:

<filter string="My filter" name="my_filter" domain="[('my_field','=',ref('my_module.my_xml_id').name)]"/>

使用%(my_module.my_xml_id)d是无效的选项,因为我无法获取整数的属性,并且需要对象的名称。

因此,我想知道是否有比在模型中创建存储的计算字段以在过滤器中使用名称更好的解决方案。太糟糕了,因为我将在每个记录中存储相同的值...

有什么想法吗?谢谢!

python xml odoo odoo-10
1个回答
0
投票
class YourClass(models.Model):

    _name = 'your.class'

    @api.model
    def _your_field_domain(self):
        return [
            ('my_field', '=',
             self.env.ref('my_module.my_xml_id').name)
            ]

    your_field = fields.Many2one(
        'another.class',
        domain=_your_field_domain
    )
© www.soinside.com 2019 - 2024. All rights reserved.