¡BIENVENIDO AL FORO DE ODOO ARGENTINA!

BRINDAMOS UN ESPACIO A LA COMUNIDAD ARGENTINA DE ODOO PARA CENTRALIZAR EL DEBATE, COMPARTIR IDEAS, DESARROLLOS, Y FORMAR PARTE DE UNA COMUNIDAD QUE CRECE DÍA A DÍA

¿No estás registrado?  REGISTRATE

Se marcó esta pregunta
1 Responder
2934 Vistas

Hola, quisiera saber como hacer para restringir un campo de un objeto para que el valor del mismo sea unico, por ejemplo el codigo de cliente. Intente hacerlo de la siguiente manera pero no dio resultado :

 _sql_constraints = [
  ('name_uniq', 'unique(name)', 'El nombre del registro debe ser unico!'),
 ]

Este codigo lo inserte dentro del archivo .py donde se define el objeto.

Desde ya gracias.

Avatar
Descartar
Mejor respuesta

Podés definir un método dentro de tu clase, que esté decorado con @api.constrains

Con esto, tenés un mejor control de lo que querés hacer. En esta página tenés un ejemplo de como se puede usar.

http://djpatelblog.blogspot.cl/2014/09/odoo-new-api-metaclasses-and-decorators.html

Básicamente es de la siguiente forma:

@api.one
@api.constrains('name', 'description')
def _check_description(self):
    if self.name == self.description:
        raise ValidationError("Fields name and description must be different")
 

 

También dale una mirada al módulo partner_vat_unique por ejemplo.

 

Avatar
Descartar