Ho appena iniziato a usare django. Mi sono imbattuto in moduli e ho bisogno di sapere qual è il modo migliore per convalidare un modulo. Userebbe i moduli django o dovremmo usare javascript o qualche linguaggio di scripting lato client per farlo?Convalida modulo in django
risposta
È consigliabile SEMPRE convalidare il modulo sul lato server, la convalida lato client è solo una comodità per l'utente.
Detto questo, le forme di Django hanno un form.errors variabile che mostra se alcuni campi modulo non erano corretti.
{{form.name_of_field.errors}} può darti ogni singolo errore di ogni campo che è stato compilato in modo errato. Vedere più qui:
Una cosa che i documenti * non * menzionano è l'esistenza di {{form.non_field_errors}} per quando si desidera ottenere * solo * gli errori che si applicano al modulo nel suo complesso. –
Sì, trovo che i documenti perdano un sacco di cose, o semplicemente non entrano nei dettagli. Spero che man mano che il framework evolve, i doc fanno altrettanto. – AlbertoPL
Per ripetere ciò che Alberto ha detto: la validazione lato client non è una convalida. Chiunque può creare una richiesta POST o GET. L'unico vantaggio effettivo ottenuto dalla convalida sul lato client è il "Web 2.0 AJAXy feel" per l'utente, ma non la convalida, che avviene sul lato server. – ShawnMilo
C'è un app Django pluggable (django-ajax-forms) che aiuta a validare moduli sul lato client tramite JavaScript. Tuttavia, come dice AlbertoPL, utilizzare la convalida lato client solo come misura di usabilità (ad esempio, dire a un utente che il nome utente desiderato è già stato preso senza ricaricare la pagina di registrazione). Ci sono tutti i tipi di modi per aggirare la validazione lato client, nella maggior parte dei casi semplice come disattivare JavaScript.
In generale: presumere tutti i dati provenienti dall'esterno come difettosi fino a convalidati.
Appena arrivato attraverso django-floppyforms, che sembra fare la validazione clientide di default. Utilizzano HTML5 che supporta la convalida del client per impostazione predefinita. Non sono sicuro se usano javascript anche se il browser non supporta HTML5. Non ho ancora provato da solo.
Link django-floppyforms: Documentation e Github
Sarà necessario fare questo è JS. This app integra i moduli con parsley.js per etichettare i moduli con gli attributi data- * corretti automaticamente.
Se si utilizza il bootstrap, è possibile semplicemente aggiungere l'attributo richiesto nel campo moduli. Per esempio, se c'è campo programmi allora è possibile convalidare le cose come:
In forms.py:
programme = forms.ChoiceField(course_choices,required=True, widget=forms.Select(attrs={'required':'required'}))
Nota: Si richiede di collegare il bootstrap file nella .html
pagina di quel modulo.
- 1. Convalida modulo Django e personalizzato
- 2. Convalida del modulo Javascript Django
- 3. Convalida modulo personalizzato in Django-Allauth
- 4. Convalida una lumaca in Django
- 5. Convalida modulo in EmberJS
- 6. Convalida del modulo Django: rendere condizionale la parola "richiesto"?
- 7. Personalizza l'output html della convalida del modulo di Django
- 8. Convalida del campo modello Django senza modulo personalizzato
- 9. django - modulo non ha errori ma form.is_valid() non convalida
- 10. visualizzazione di errori di convalida del modulo django per ModelForms
- 11. Modulo% in modello Django
- 12. JQuery - Convalida modulo - Onblur
- 13. Convalida modulo Zend
- 14. Modulo di convalida e modulo helper
- 15. Convalida modulo con campi dipendenti in AngularJS
- 16. Estensione del modulo di convalida in Codeigniter
- 17. Convalida del campo Django in Model and in Admin?
- 18. Convalida la dimensione dell'immagine nell'amministratore di django
- 19. convalida password personalizzata in django 1.7
- 20. Convalida ingresso modulo con Meteor
- 21. Convalida un modulo di knockout.js?
- 22. Convalida modulo TinyMCE e HTML5
- 23. ASP.NET MVC 5 Convalida modulo
- 24. Convalida modulo di iscrizione PHP
- 25. Convalida modulo multi-passo AngularJS
- 26. Convalida modulo Select2 e HTML5
- 27. Convalida personalizzata nell'amministratore di Django
- 28. Aggiunge esternamente errori di modulo in Django
- 29. Separazione dell'input del modulo e della convalida del modello in Django?
- 30. Modulo Django + per reimpostare la password
Otterrete molti più spettatori con il tag 'django' di una sottotag come' django-forms'. Cerca sempre di includere almeno un tag per la piattaforma/lingua principale che stai utilizzando (come '.net',' java', 'django', ecc.), Specialmente quando non hai raggiunto il limite di cinque tag. – Zifre