Ver índice de contenidos del libro

Capítulo 9. Vistas genéricas

De nuevo aparece aquí un tema recurrente en este libro: en el peor de los casos, el desarrollo Web es aburrido y monótono. Hasta aquí, hemos cubierto cómo Django trata de alejar parte de esa monotonía en las capas del modelo y las plantillas, pero los desarrolladores Web también experimentan este aburrimiento al nivel de las vistas.

Las vistas genéricas de Django fueron desarrolladas para aliviar ese dolor. Éstas recogen ciertos estilos y patrones comunes encontrados en el desarrollo de vistas y los abstraen, de modo que puedas escribir rápidamente vistas comunes de datos sin que tengas que escribir mucho código. De hecho, casi todos los ejemplos de vistas en los capítulos precedentes pueden ser reescritos con la ayuda de vistas genéricas.

El Capítulo 8 refirió brevemente sobre cómo harías para crear una vista "genérica". Para repasar, podemos reconocer ciertas tareas comunes, como mostrar una lista de objetos, y escribir código que muestra una lista de cualquier objeto. Por lo tanto el modelo en cuestión puede ser pasado como un argumento extra a la URLconf.

Django viene con vistas genéricas para hacer lo siguiente:

  • Realizar tareas "sencillas" comunes: redirigir a una página diferente y renderizar una plantilla dada.
  • Mostrar páginas de listado y detalle para un solo objeto. Las vistas event_list y entry_list del Capítulo 8 son ejemplos de vistas de listado. Una página de evento simple es un ejemplo de lo que llamamos vista "detallada".
  • Presentar objetos basados en fechas en páginas de archivo de tipo día/mes/año, su detalle asociado, y las páginas "más recientes". Los archivos por día, mes, año del blog de Django están construidos con ellas, como lo estarían los típicos archivos de un periódico.
  • Permitir a los usuarios crear, actualizar y borrar objetos — con o sin autorización.

Agrupadas, estas vistas proveen interfaces fáciles para realizar las tareas más comunes que encuentran los desarrolladores.