Me parece que cuando inserto nada de una cadena form field
a través de un formulario, lo captura como una cadena vacía ''
.django nulo y cadena vacía
Sin embargo, cuando no inserto nada de un entero form field
a través de un formulario, lo captura como [null]
.
¿Es esta una buena práctica? ¿Debe la cadena ser null
también en el db?
Si en mi base de datos configuro un campo para PERMITIR NULO, entonces espero que ninguno se almacene como NULL, no como una cadena vacía. Está bien que Django tenga sus convenciones, pero Django no es necesariamente el único sistema que accede a la base de datos. Si una aplicación por separado puede almacenar NULL, entonces tendrá que seguir buscando cadena vacía o nula. Sin embargo, un simple 'if not value' comprobará ambos en Python. – six8
Podría ser una "práctica django", pero en las bases de datos en general, usar la cadena vacía para representar los datos faltantes es una mala práctica. Para eso es NULL. Realmente me gustaría que esto no fuera una práctica estándar en django. – Darren
No es una buena práctica, es una convención introducida en los primeros días, por no tener que manejar 'None' en las plantillas y no tener que limpiar los campos de formulario en blanco en' None'. Era un atajo para hacer las cosas rápidamente, pero ahora deberíamos justificarlo como una buena práctica, porque era la pereza o la falta de tiempo lo que nos permitía esta "práctica". Es por eso que ahora tenemos 2 atributos de campo manejando esto. –