2009-04-30 14 views

Respuesta

9

Actualmente, Django no proporciona ninguna validación a nivel de modelo (además de las validaciones básicas "NOT NULL", "UNIQUE" y de longitud). Esto está en la lista de cosas por hacer, pero lo más probable es que no se ajuste a la próxima versión 1.1.

Puede realizar tareas relacionadas con la validación en el método save() de su modelo o utilizar la señal before_save (elevar la excepción en el controlador de señal hará que la transacción se retrotraiga).

1

En general, debe poder manejar lo que desee a través del field types incorporado y sus opciones o el model's meta options. También puede override the save method para realizar la validación/saneamiento. Si eso no es suficiente, puede crear su propio field type.

El problema es que no hay un buen comportamiento esperado. ¿Qué debería pasar? ¿Debería plantearse una excepción? Los campos son solo una abstracción a nivel de base de datos, por lo que no debería haber más información allí que lo que la base de datos necesita saber.

Cuestiones relacionadas