Ticket #67 (closed compito: sistemata)

Opened 4 years ago

Last modified 3 years ago

Sistemare campi null e blank

Reported by: fero Owned by: domthu
Priority: importante Milestone: ACQUISTIAMO - L'utente può ordinare
Component: sviluppo Keywords:
Cc:

Description

Su http://docs.djangoproject.com/en/1.3/ref/models/fields/#null

viene sconsigliato di usare null=True per i campi di testo (di base CharField e TextField). Questo è l'approccio da seguire nella maggior parte dei casi. Ritengo che invece non sia da seguire nel nostro caso nel campo uuid o codice fiscale (fcc) o iva (vat), ... questo perché vogliamo il vincolo di unicità.

Bisogna:

  • eliminare i null=True dai campi di testo quando non servono
  • gestire i restanti casi nel metodo save() come ha fatto domthu: nelle situazioni in cui vogliamo un valore nullo quando il campo non è impostato. Questo accade quando vogliamo anche che il campo sia unico e se è "stringa vuota" ci dà problemi perché "" == "" mentre NULL != NULL.

Il ticket è in carico a domthu che si occuperà di gestire queste situazioni in tutto il codice attualmente scritto

Change History

comment:1 Changed 4 years ago by dom_thual

Ok per gestire nel codice i fields impostati ad Unique=True con def save

UUID: imposterò anche le local_flavour: molto interresante...

comment:2 Changed 4 years ago by fero

negativo. Non impostare localflavour. Riguardano le form e non i modelli.

È meglio fare meno cose, ma meglio. Ti prego di andare piano perché stai ancora scaldando i motori.

Concentriamoci sull'admin interface per quello che esula questo ticket.
Facciamo prove. Prepariamo dati per il test come ha fatto Lorenzo.

comment:3 Changed 3 years ago by fero

  • Status changed from new to closed
  • Resolution set to sistemata

Ormai è chiaro che in genere i campi di testo non hanno null=True e blank=True allo stesso tempo. È tuttavia necessario questo comportamento quando il campo di testo è unique=True. In questo caso è necessario mettere un controllo nella save() che imposti il campo a None per evitare che la seconda istanza salvata con il valore "blank" sia considerata non valida perché non "unique" nella tabella del modello.

Note: See TracTickets for help on using tickets.