栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

域过滤器在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
正确地在域上设置域。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/646552.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号