È tipico separare la convalida dell'input dalla convalida a livello di modello nei progetti Django? Ad esempio, la convalida che un nome utente si adatta ai criteri di denominazione sarebbe la convalida dell'input e la verifica che l'utente non sia già nel database sarebbe la convalida a livello di modello.Separazione dell'input del modulo e della convalida del modello in Django?
Ho osservato il codice di un collega e hanno inserito entrambi i tipi di convalida in una classe di modulo (in forms.py). È la configurazione tipica o è più comune che la convalida a livello di modello venga visualizzata nel modello o nella vista?
O c'è un modo migliore per avvicinarsi a questo-- come usare un ModelForm
? Sono piuttosto nuovo a Django e sto cercando di imparare quale è lo schema consigliato per questa situazione.
Sono d'accordo. La maggior parte delle cose può essere pensata come una convalida "a livello di modello". Davvero non vuoi mai un nome utente per colpire il database se non corrisponde ai criteri di denominazione. Ci sono alcune cose che variano da una forma all'altra, ed è qui che si desidera convalidare il modulo stesso. Potresti avere un modello di file di fantasia che contiene il tipo di file in un campo. Qualsiasi tipo è ok a livello di modello, ma nel modulo di caricamento delle foto si desidera limitarlo a png e jpeg, ad esempio. – dokkaebi