HOW CAN I PUT
CONTRAIN ON SELECTING THE SAME PERSON IN DIFFERENT FIELDS
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
from odoo import models, fields, api
from odoo.exceptions import ValidationError
class YourModel(models.Model):
_name = "your.model"
field_one = fields.Many2one('res.partner', string='Field One')
field_two = fields.Many2one('res.partner', string='Field Two')
@api.constrains('field_one', 'field_two')
def _check_same_person(self):
for record in self:
if record.field_one and record.field_two and record.field_one == record.field_two:
raise ValidationError("You cannot select the same person in both fields.")
Hi,
Suppose you want to check two partner fields in sale order model , you can do as follows:
from odoo import models, fields, api
from odoo.exceptions import ValidationError
class SaleOrder(models.Model):
_inherit = 'sale.order'
partner_id_1 = fields.Many2one('res.partner', string="Partner 1")
partner_id_2 = fields.Many2one('res.partner', string="Partner 2")
@api.constrains('partner_id_1', 'partner_id_2')
def _check_same_partner(self):
"""
Constraint to ensure that the same partner is not selected in both Partner 1 and Partner 2 fields
"""
for order in self:
if order.partner_id_1 and order.partner_id_2 and order.partner_id_1 == order.partner_id_2:
raise ValidationError("You cannot select the same partner in both fields.")
Replace your model and fields that you are using
Hope this will help you
Thanks
Buat akun sekarang untuk menikmati fitur eksklufi dan agar terlibat dengan komunitas kami!
Daftar
1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.