I'm working with Odoo 10, and I'm trying to modify the fleet module like the next image
We need the field "Conductor" (Driver) be unique, I mean, a vehicle only can have assigned one driver and the driver can't have more than one vehicle assigned.
I used this code:
@api.constrains('driver_id')
def _check_driver(self):
for record in self:
if record.driver_id in self:
raise ValidationError("Driver already has a vehicle assigned")
but that code doesn't work. How can I solve it?
your could apply a domain filter in the field definition as following
#definition on the fleet.vehicle model
driver_id = fields.Many2one('res.partner', index=True, required=True,
ondelete='cascade', domain=[('vehicle_id', '=', False)])
#definition on the res.partner model
vehicle_id = fields.One2many('fleet.vehicle', 'driver_id')
or as following:
@api.constrains('driver_id')
def _check_driver(self):
FleetVehicle = self.env['fleet.vehicle']
for record in self:
if record.driver_id in self:
vehicle_count = FleetVehicle.search_count(['driver_id', '=', record.driver_id])
if vehicle_count > 0:
raise ValidationError("Driver already has a vehicle assigned")