动态加载下拉内容

时间:2018-06-20 21:41:10

标签: dropdown odoo

我是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一定不能出现在下拉列表中。

如何实现? 提前感谢

2 个答案:

答案 0 :(得分:0)

将此方法添加到Dog类:

@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

答案 1 :(得分:0)

请在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()