首先,原则上您的域是错误的。域名是什么,是“内部”的字段,换句话说,在其模型(例如现场
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正确地在域上设置域。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)