2009-04-30 3 views

risposta

9

Attualmente Django non fornisce alcuna convalida a livello di modello (oltre alle convalide di base "NOT NULL", "UNIQUE" e di lunghezza). Questo è nella lista TODO, ma molto probabilmente non si adatterà alla prossima versione 1.1.

È possibile eseguire attività relative alla convalida nel metodo save() del proprio modello o utilizzare il segnale before_save (l'aumento dell'eccezione nel gestore di segnale comporterà il rollback della transazione).

1

In generale, si dovrebbe essere in grado di gestire ciò che si desidera tramite il built-in field types e le loro opzioni o il model's meta options. È inoltre possibile eseguire override the save method per convalidare/igienizzare. Se ciò non è sufficiente, è possibile creare il proprio field type.

Il problema è che non esiste un buon comportamento previsto. Cosa dovrebbe succedere? Dovrebbe essere sollevata un'eccezione? I campi sono solo un'astrazione a livello di database, quindi non ci dovrebbero essere più informazioni in là di ciò che il database deve sapere.

Problemi correlati