域过滤器在odoo中的many2one字段?

域过滤器在odoo中的many2one字段?,第1张

域过滤器在odoo中的many2one字段

首先,原则上您的域是错误的。域名是什么,是“内部”的字段,换句话说,在其模型(例如现场

name
id
asset.catg
模型)。因此,您应该先修复该问题。

如果domain依赖于另一个字段,则可以使用onchange方法返回domain(使用的占位符

place_id
)。像这样:

@api.onchange('place')def onchange_place(self):    res = {}    if self.place:        res['domain'] = {'asset_catg_id': [('place_id', '=', self.place.id)]}    return res

PS 这是新v8 api的示例,但相同的原理也适用于旧api(然后,您无需使用decorator,也可以添加

cr, uid,ids
方法并通过视图调用它。新api不需要所有这些)。看起来您仍在使用旧api进行开发。

*对于旧api的 *更新

def onchange_place(self,cr, uid, ids, place, context=None):    res = {}    if self.place: #on old api it will return id, instead of record        res['domain'] = {'asset_catg_id': [('place_id', '=', self.place)]}    return res

然后在您的视图中(不知道您使用的是哪种视图):

<field name="place" on_change="onchange_place(place)"/>

仍然需要在其中定义一些字段,

asset.catg
以便将其用于匹配
place
字段。例如:

'place_id': fields.many2one('asset.parentlocation', 'Place')

然后,当您定义资产类别时,您可以设置资产所属的位置。然后,当您选择place时

calendar.event
,onchange方法将
asset_catg_id
正确地在域上设置域。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5648752.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存