Odoo 15中筛选POS可用商品时域表达式报错如何解决?
解决POS商品选择框筛选可用商品的问题
首先排查字段定义是否正确:
- 确认你扩展
product.template的代码无误,字段available_in_pos已正确注册:from odoo import models, fields class ProductTemplate(models.Model): _inherit = 'product.template' available_in_pos = fields.Boolean(string='POS可用', default=True) - 确保模块已安装并更新,数据库中
product.template表确实存在该字段。
如果域表达式仍报错,推荐通过product.product关联字段实现筛选:
因为POS中选择的product_id对应product.product模型,直接跨模型引用模板字段可能因层级识别问题触发错误。可以给product.product添加关联字段:
from odoo import models, fields class ProductProduct(models.Model): _inherit = 'product.product' available_in_pos = fields.Boolean(related='product_tmpl_id.available_in_pos', string='POS可用', store=False)
然后在视图的product_id字段域中使用:
<field name="product_id" domain="[('available_in_pos', '=', True)]"/>
另外也可以检查以下几点:
- 确认字段名拼写无错误,比如是否把
available_in_pos写成了其他名称 - 检查当前用户是否有访问
product.template.available_in_pos字段的权限,若自定义了权限组,需确保权限包含该字段
内容的提问来源于stack exchange,提问作者Seaworn
相关产品推荐
相关产品推荐

