【发布时间】:2017-06-05 17:16:07
【问题描述】:
使用 Odoo 10(取自 GitHub 提交 7413b26,分支 10.0),我尝试在应用到树视图的搜索过滤器域中使用环境。像这样:
<filter string="Metal" domain="[('attribute_id','=', self.env['ir.config_parameter'].get_param('my_module.attrib_metal', None))]" help="metal"/>
但是Odoo不允许我使用self:
NameError: name 'self' 未定义
我还尝试通过将结果保存在字段中来使用 Python 过滤我的attrib_metal,但我不想将其存储在我的数据库中,但是 Odoo 搜索需要它。
在我的 Python 中:
def get_my_params(self):
attrid = self.env['ir.config_parameter'].get_param(
'my_module.attrib_metal', None)
if attrid:
for rec in self:
setattr(rec, attrib_metal, rec.attribute_id.id == int(attrid))
attrib_metal = fields.Boolean(store=False, compute="get_cr_params")
此代码是继承的product.attribute.value 模型的一部分。
在我的 XML 视图中:
<filter string="Metal" domain="[('attrib_metal', '=', 'True')]" help="metal"/>
我已尝试使用 store = True 参数,但这种方式将值存储在数据库中,并且只计算一次,这不是我想要的。
所以这不是正确的做法。
如何使用<filter> 域中的环境?
【问题讨论】:
-
store=False表示odoo不会将该字段存储在db中