Acusmatas les queda poco tiempo para madurar este grado. En el próximo grado las dificultades crecen exponencialmente, pero si han aprendido las buenas costumbres y han sabido cultivar las virtudes, será muy simple, no existen dificultades imposibles de saltear para los hombres virtuosos.

Restricciones a nivel SQL

Vamos a ver un ejemplo de una restricción a nivel SQL y el próximo grado vamos a ver mas en profundidad las restricciones que Odoo llama constrains.

Si analizamos el ejemplo que veníamos siguiendo:

resulta claro que no deberíamos poder tener dos grados (Degree) con el mismo nombre. Pues bien, vamos a decirle a Odoo que coloque una restricción de unicidad en el nombre del modelo Degree.

Editamos el archivo models/degree.py y agregamos el siguiente código.

...
    #Constraints
    _sql_constraints = [
        ('name_uniq', 'unique(name)', 'Name repeat!'),
    ]
...

Como verán estamos sobrescribiendo la variable _sql_constraints de la clase Model de Odoo.

Ahora cuando intenten guardar dos grados con el mismo nombre, Odoo les mostrara una alerta:

Dentro del array que asignamos a la variable _sql_constraints, hay ternarios con el siguiente formato:

(nombre_restricción, función_de_restricción, mensaje_d_alerta)

Pueden profundizar sobre las constrains SQL en postgressql aquí . Les recomiendo que hagan pruebas con otro tipo de constrains, no solo UNIQUE y también que prueben afectar a mas de un atributo del modelo.

Final

Hemos llegado al final de este viaje. Como verán eramos mas al comienzo, pero el tamiz ha hecho su trabajo y aquí hemos quedado los que supimos adaptarnos a este nuevo entorno. Ahora vayamos al siguiente grado, pero no sin antes repetirles una vez mas que nunca dejen de ser Acusmatas, es decir, no pierdan la pasión, el entusiasmo y la curiosidad que les permitió llegar hasta aquí, van a necesitar esas virtudes y algunas otras para lo que se viene.

 

Éxitos.