关于models的字段动态 域值(fields中的domain参数),相关问题。
-
下面用一个简单的示例来描述问题所在:
1、首先【库位】这个档案,有一个 “仓库”的字段(store_id),也即“库位”是要挂“仓库”的。
2、现在某单据存在“仓库”这个字段(store_id),此单据明细 存在 “库位”的字段(goods_place_id)。
3、现在要求,在更改单据store_id时, 明细中的 goods_place_id 要受到 store_id 的过滤。
4、question:如何处理上述类似场景的问题? -
onchange方法可以return对应字段的domain,比如可以定义对应
store_id
的onchange方法:@api.onchange('store_id') def onchange_store(self): return {'domain': {'goods_place_id': [('store_id', '=', self.store_id)]}}
不过感觉兄弟在重造轮子啊,Odoo里有完整的库存,库位管理。
-
@digitalsatori 这个方法试过,这个是要求在同一个模型里,才会生效。我想要的结果是 用主表(单据)中的字段,过滤从表(单据的细单,主表与从表是一对多关系,主表中从表是一个one2many的字段)中的某个字段。
-
另外,上面仅仅是一个我能想到的示例。
-
也可以把domain写在view上:
<field name='goods_place_id' domain="[('store_id', '=', parent.store_id)]"/>
这里的
parent
就是主表 -
@digitalsatori 刚刚试了一下你这种写法会直接报错的... 原因是,在goods_place_id对应的模型里,是不存在 这个“parent”的字段的...
-
应该是你写错了。你可以参看Odoo中sale模块中的相关用法:
https://github.com/odoo/odoo/blob/232a7283a55cb7efe1750ea038b9244df06031e3/addons/sale/views/sale_views.xml#L469 -
@digitalsatori 可以了,万分感谢!!