Tengo el siguiente problema, necesito que permitir un campo nulo en una tabla dónde ese campo tiene una restricción Unique. Si ya tengo algún registro con ese campo nulo, al guardar otro registro, obtengo un mensaje de error debido a que considera esos registros como iguales. Intento utilizar una condición Exclude() para que exclya la restriciión unique en registros con Null en el campo webcode, en _sql_constraints pero no entiendo la sintaxis a usar, siempre tengo distintos errores. Este es el código relevante:
In supported SQL NULL can not trigger unique constraint because NULL is different from NULL.
So I guess your table is not filled with NULL but an empty string.
If you do want to exclude also empty string from the unique constraint, you can use: Exclude(t, (NullIf(t.webcode, ''), Equal)).
File “/home/lims/src/venv_test/lib/python3.7/site-packages/trytond/model/modelsql.py”, line 306, in register
for ident, constraint, _ in cls._sql_constraints:
TypeError: cannot unpack non-iterable Exclude object
I had to do it in 2 steps, first in database this ALTER TABLE product_template DROP CONSTRAINT product_template_wecode_unique, and then using these code: