一、产生原因
odoo 的计算字段,如何没有属性 store=True
是不能在视图上进行搜索的。但实际情况是,没有设置这个属性的还是需要在视图上可搜索,可以如下这样做。
二、设置字段参数 search
以下是官方 oodo13 版本中关于计算字段关于搜索的说明。大致意思有以下几点:
- 默认情况下,不会存储计算字段,而是在请求时计算并返回这些字段。设置
store=True
将它们存储在数据库中就可以使用搜索。 - 可以通过设置
search
参数来启用对计算字段的搜索。该方法是返回搜索域domain 的方法。 - 在对模型进行实际搜索之前处理 domain,将调用 search 方法。它必须返回类似这样的:
field operater value
。
三、搜索视图写法
<field name="arch" type="xml">
<xpath expr="//field[@name='name']" position="after">
<field name="qty"/> # 直接搜索字段
</xpath>
<xpath expr="//group[1]/filter[@name='name']" position="after">
<filter name="filter_qty_gt_zero" string="Quantity Greater Than Zero"
domain="[('qty', '>', 0)]"/> # 写成有条件的筛选
</xpath>
</field>
新学到的,以前知道有search
这个属性,不知道这样写了以后,就可以保存的字段一样可以搜索了。