动态加载下拉内容
Loading a dropdown content dynamically
我是 Odoo 世界的新手,现在我被困住了。我有这个(Odoo v11.0):
Model: class Dog()
dog_name = fields.Char()
gps = fields.Many2One(Model Gps)
Model: class Gps()
serial = fields.Char()
我有一个 Gps 列表,它在 Dog 的表单中显示为下拉列表,每次创建 Dog 记录时只能为其分配一个 Gps,因此下次我创建 Dog 时,那些分配的 Gps 必须未出现在下拉列表中。
如何实现?
提前致谢
将此方法添加到 Dog class:
@api.one
@api.onchange('gps')
def onchange_gps(self):
If not self.gps:
Res = {}
Ids = []
Dogs = self.env['dog'].search([])
Ids = [d.gps for d in dogs]
Res['Domain'] = {'gps' : [('id', 'not in', ids)]}
Return res
请在 class Gps 中添加以下方法。
@api.multi
def name_get(self):
if self._context.get('filter_gps'):
gps_records = self.env['Dog'].search([('gps','!=',False)]).mapped('gps')
new_self = self - gps_records
return super(Gps,new_self).name_get()
return super(Gps,self).name_get()
我是 Odoo 世界的新手,现在我被困住了。我有这个(Odoo v11.0):
Model: class Dog()
dog_name = fields.Char()
gps = fields.Many2One(Model Gps)
Model: class Gps()
serial = fields.Char()
我有一个 Gps 列表,它在 Dog 的表单中显示为下拉列表,每次创建 Dog 记录时只能为其分配一个 Gps,因此下次我创建 Dog 时,那些分配的 Gps 必须未出现在下拉列表中。
如何实现? 提前致谢
将此方法添加到 Dog class:
@api.one
@api.onchange('gps')
def onchange_gps(self):
If not self.gps:
Res = {}
Ids = []
Dogs = self.env['dog'].search([])
Ids = [d.gps for d in dogs]
Res['Domain'] = {'gps' : [('id', 'not in', ids)]}
Return res
请在 class Gps 中添加以下方法。
@api.multi
def name_get(self):
if self._context.get('filter_gps'):
gps_records = self.env['Dog'].search([('gps','!=',False)]).mapped('gps')
new_self = self - gps_records
return super(Gps,new_self).name_get()
return super(Gps,self).name_get()