Foro de Odoo Argentina


¡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

0

Restringir un campo para que sea unico

Avatar
Francisco Tobar

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
1 Respuesta
1
Avatar
Daniel Blanco
Best Answer

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