I have an entity teacher with a Many2One field "substitute_teacher_id". The idea is that a teacher can replace other teacher, but a teacher should not be able to replace himself. How can I set that restriction in the teacher's model and/or view to ensure that a teacher cannot select a teacher with the same id as a substitute? This is my code
class Teacher(models.Model):
_name = 'school.teacher'
_description = 'School Teacher'
name = fields.Char(string="Name")
substitute_teacher_id = fields.Many2one('school.teacher', string="Sustitute")
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Boekhouding
- Voorraad
- PoS
- Project
- MRP
Deze vraag is gerapporteerd
2
Antwoorden
2199
Weergaven
You can do it using constrains:
from odoo.exceptions import ValidationError
@api.constrains('substitute_teacher_id')
def _check_substitute_teacher(self):
for teacher in self:
if teacher.id == teacher.substitute_teacher_id.id:
raise ValidationError('You cannot set yourself as Substitute Teacher.')
This will check the Substitute Teacher field and raise the message to the user if user has set himself/herself as Substitute Teacher.
Hi Ernesto:
You can define a domain for the Many2one field like so
substitute_teacher_id = fields.Many2one('school.teacher', string="Substitute", domain="[('id', '!=', id)]")
Geniet je van het gesprek? Blijf niet alleen lezen, doe ook mee!
Maak vandaag nog een account aan om te profiteren van exclusieve functies en deel uit te maken van onze geweldige community!
Aanmelden