formularios avanzados django
formularios avanzados django La construcción de formularios puede facilitarse mucho utilizando las clases genéricas de Django sin embargo no siempre las vamos a utilizar ya que en ocasiones necesitamos desarrollar la lógica completa de nuestra parte.
Afortunadamente dentro de Django podemos crear también la forma en la cual vamos a procesar nuestros formularios y como administrar su lógica, con ello lograremos aplicaciones mucho más personalizadas y cercanas a nuestros objetivos.
mas tutoriales de informatica y programacion
- Tutoriales servidores web
- Tutoriales CMS
- Tutoriales css y dseño web
- Tutoriales java Desde cero
- Tutoriales javaScript
- Tutoriales linux
- Tutoriales php
- Tutoriales python
- Tutoriales ruby
- Tutoriales Seguridad informatica
- Otros tutoriales de informatica en español
Temas mas vistos
- 20 formas de ganar dinero en internet
- noticias gadgets tecnologia
- mejores aplicaciones android
- recetas de cocina faciles y economicas
Uniendo la data al formulario
Sabemos que el formulario es una forma de tomar datos del usuario, por lo tanto tenemos dos estados del mismo, con datos y sin datos, cuando el formulario tiene datos es cuando vamos a hacer nuestras operaciones, en cambio cuando no tiene nada simplemente lo debemos ignorar para el procesamiento de datos.
Como vemos en el ejemplo solo cuando le pasamos los valores al formulario mientras utilizamos el método is_bound es que obtenemos una respuesta True.
Validar Datos
Como sabemos, si trabajamos en web los datos que ingresa el usuario pueden ser la forma de ataque más efectiva contra nuestra aplicación, esto es debido a que por desconocimiento puede ingresar cualquier tipo de formatos que nuestra aplicación no está lista para aceptar y por ende puede terminar en un error fatal, para evitar esto siempre debemos asegurarnos que la data es segura antes de procesarla para ello podemos utilizar lo siguiente:
- def mi_vista(request):
- if request.method == ‘POST’:
- form = MiFormulario(request.POST, request.FILES)
- if form.is_valid():
- #Si la data es válida aquí podemos continuar con nuestra lógica de aplicación
- else:
- #De lo contrario solo presentamos el objeto sin datos
- form = MiFormulario()
Como vemos en el ejemplo hacemos una instancia de la clase MiFormulario y le unimos los datos que vienen en el request, por el método POST y los del tipo FILES en caso que traigamos una imagen o un archivo de otro tipo, dependiendo de nuestro modelo lo que traiga nuestro formulario debe ser evaluado para ello utilizamos el método is_valid(), con esto nos aseguramos que si viene un string donde debería venir un número, se rechace la información y no se deje llegar a la base de datos donde podría causar un error fatal.
Class Based Views
Ya con lo que hemos visto en el ejemplo anterior podemos ahora ver cómo podemos aplicar algo similar utilizando las Class Based Views y de esta forma utilizar las herramientas del framework.
Si utilizamos el FormView genérico de Django podemos lograr algo similar al siguiente código:
- from Django.shortcuts import render, redirect
- from Django.views.generic.edit import FormView
- class MiFormulario(FormView):
- form_class = MiFormulario
- template_name = ‘form.html’
- success_url = ‘/success/’
- def form_valid(self, form):
- form.save()
- return super(MyView, self).form_valid(form)
Como vemos la utilización avanzada de los formularios nos permite hacer aplicaciones más dinámicas y de forma más personalizada con lo que podemos lograr resultados increíbles con pocas líneas de código.