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
- Kế toán
- Tồn kho
- PoS
- Project
- MRP
Câu hỏi này đã bị gắn cờ
2
Trả lời
2201
Lượt xem
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)]")
Bạn có hứng thú với cuộc thảo luận không? Đừng chỉ đọc, hãy tham gia nhé!
Tạo tài khoản ngay hôm nay để tận hưởng các tính năng độc đáo và tham gia cộng đồng tuyệt vời của chúng tôi!
Đăng ký