Trovo che quando inserisco nulla di una stringa form field
attraverso un modulo lo cattura come una stringa vuota ''
.django stringa vuota e vuota
Tuttavia quando non inserisco nulla di un numero intero form field
attraverso un modulo lo cattura come [null]
.
Questa è una buona pratica? La stringa dovrebbe essere null
nel db?
Se nel mio database ho impostato un campo su ALLOW NULL, quindi mi aspetto che nessuno venga memorizzato come NULL, non una stringa vuota. Va bene per Django avere le sue convenzioni, ma Django non è necessariamente l'unico sistema che accede al database. Se un'applicazione separata può memorizzare NULL, si finisce per dover ancora controllare la stringa vuota vs vuota. Comunque un semplice 'if not value' controllerà entrambi in Python. – six8
Potrebbe essere "pratica django", ma nei database in generale usare la stringa vuota per rappresentare i dati mancanti è una cattiva pratica. Ecco a cosa serve NULL. Spero davvero che questa non fosse una pratica standard nel django. – Darren
Non è una buona pratica è una convenzione introdotta nei primi giorni, per non dover gestire 'Nessuno' nei modelli e non dover pulire i campi del modulo vuoto in' Nessuno'. Era una scorciatoia per fare le cose rapidamente, ma dovremmo giustificarlo come una buona pratica ora, perché era la pigrizia o la mancanza di tempo che ci ha portato questa "pratica". Ecco perché ora abbiamo 2 attributi di campo che gestiscono questa roba. –