¿Cuál es el punto de configuración cd = form.cleaned_data antes de pasar los valores de entrada de un envío POST/GET? ¿Cuál es el objetivo de esto y por qué es necesario (si es así)?Usando clean_data en formularios en django
Respuesta
No es necesario utilizar el atributo .cleaned_data de una forma antes de pasar los valores de entrada, se generará un AttributeError si lo hace antes de llamar .is_valid() en forma ligada o si intenta acceder a él de forma independiente, read more about Form.cleaned_data.
Además, por lo general es una buena idea abstracta el uso de los datos del formulario en un método de formulario con el fin de encapsular la lógica
En su opinión, la forma tradicional que usted debe utilizar formas es así:
if request.method == 'POST':
form = MyForm(request.POST) # Pass the resuest's POST/GET data
if form.is_valid(): # invoke .is_valid
form.process() # look how I don't access .cleaned_data in the view
en su forma:
class MyForm(forms.Form):
my_field = forms.CharField()
def process(self):
# Assumes .cleaned_data exists because this method is always invoked after .is_valid(), otherwise will raise AttributeError
cd = self.cleaned_data
# do something interesting with your data in cd
# At this point, .cleaned_data has been used _after_ passing the POST/GET as form's data
Una vez que is_valid() devuelve Verdadero, puede procesar el envío de formulario seguro sabiendo que cumple con las reglas de validación definidas por su formulario. Si bien puedes acceder a request.POST directamente en este punto, es mejor acceder a form.cleaned_data. Esta información no solo ha sido validada sino que también se convertirá en los tipos de Python correspondientes para usted.
- 1. Django: varios modelos en una plantilla usando formularios
- 2. Guardando formularios anidados en Django
- 3. Formularios dinámicos en django-admin
- 4. Eliminar dinámicamente formularios en línea en Django
- 5. Formularios Django necesarios
- 6. Almacenar campos dinámicos en formularios de Django
- 7. Widgets de formularios complejos en Django
- 8. django formulario en línea con formularios personalizados
- 9. Botones de radio en django Formularios
- 10. Django uno a muchos formularios
- 11. Django fábrica de formularios múltiples
- 12. Django FormWizard con formularios dinámicos
- 13. Django CSRF Token sin formularios
- 14. Formularios Django - ¿Cómo no validar?
- 15. Usando StringTemplate junto con formularios en SpringMVC
- 16. Validar eliminación en formularios en línea de django-admin
- 17. Devolución de errores puros de formularios de Django en JSON
- 18. Usando dict_cursor en Django
- 19. Usando gravatar en django
- 20. Usando AuthenticationForm en Django
- 21. Django formularios en línea y choicefields generan demasiadas consultas db
- 22. Pruebas unitarias de conjuntos de formularios en línea django
- 23. Conjunto de formularios de Django usuario actual
- 24. ¿Cómo configuro los atributos HTML personalizados en formularios django?
- 25. ¿Cómo usar dos Formularios Django diferentes en la misma plantilla?
- 26. Alinear los botones de radio horizontalmente en formularios django
- 27. Formularios Django: establezca valores de campo en la vista
- 28. Django: Cómo obtener el usuario actual en formularios de administrador
- 29. ¿Cómo se escribe un método para guardar formularios en django?
- 30. Django y formularios vacíos son válidos
+1 por mencionar Django lanzará una AttributeError si se intenta acceder a la '' cleaned_data' antes de llamar is_valid() 'dato curioso: todavía hace esto y 6 orejas más tarde ... – pentix
@pentix Yip. ¿Crees que quizás hayan usado un error FormNotValidated? – Derek