我正在为Odoo 9中的预订创建一个模块,并且我的模型的一个字段是基于它是保留还是否 . 基本上我的模型是:

class Reservation(models.Model):
    ....
    room_id = fields.Many2one('reservation.room', string="Room")

我已经定义了一个 onchange 函数,它返回一个域来过滤未保留的room_ids:

@api.onchange('date')
def _set_available_room(self):
    .....
    return {'domain': {'room_id': [('id', 'in', res)]}}

这工作正常,当我设置日期,房间过滤好了 . 我的问题是当我保存预订并再次输入进行编辑时 . room_id 字段显示所有值,仅当我更改 date 时, room_id 被过滤 .

我已尝试在字段定义中使用 domain 属性,但它不起作用:

room_id = fields.Many2one('reservation.room', string="Room", domain=lambda self: self._get_available_slots())

如何使用我的函数在加载视图上过滤此字段,而不是搜索可用的房间?