动态加载下拉内容

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