diff --git a/python-total/dia_16/README.md b/python-total/dia_16/README.md
index 9d82c90..0460aa4 100644
--- a/python-total/dia_16/README.md
+++ b/python-total/dia_16/README.md
@@ -330,8 +330,107 @@ Si añadimos una nueva tarea veremos que nos permite añadir los campos que indi
![](../img/dia16_20.png)
+He añadido tres tareas para las pruebas.
+
## 16.6. - Configurar la vista
+Después de la prueba anterior vamos a traer una lista de objetos dinámica desde el fichero `base/views.py`. Importamos ListView:
+```python
+from django.views.generic.list import ListView
+```
+
+Creamos una clase que recoja la función. Para funcionar requiere de un módelo (lista de objetos completa) y un query set que haga la consulta filtrada de objetos. Pero tendremos que importar la Tarea de models:
+```python
+from .models import Tarea
+```
+
+La clase queda así:
+```python
+class ListaPendientes(ListView):
+ model = Tarea
+```
+
+Por ahora, el documento base/views.py lo tenemos así:
+```python
+from django.shortcuts import render
+from django.views.generic.list import ListView
+from .models import Tarea
+
+# Create your views here.
+
+class ListaPendientes(ListView):
+ model = Tarea
+```
+
+Vamos a `base/urls.py` donde tendremos que indicar que importar la ListaPendientes:
+```python
+from .views import ListaPendientes
+```
+También tenemos que cambiar el path añadiendo la ListaPendientes e indicando que lo lea como vista. El documento queda así:
+```python
+from django.urls import path
+from .views import ListaPendientes
+
+urlpatterns = [
+ path('', ListaPendientes.as_view(), name='pendientes')
+]
+```
+
+Ya hemos conectado la url a nuestra vista pero aun no hemos dicho como debe mostrarlo. Por eso, si entramos en la url nos da un error que nos indica que no existe el template, etc
+
+![](../img/dia16_21.png)
+
+Entonces, para indicar las plantillas tenemos que ir a proyecto/settings.py e indicar el path de donde coger las plantillas en DIRS. El fragmento de código entero es el siguiente:
+```python
+TEMPLATES = [
+ {
+ 'BACKEND': 'django.template.backends.django.DjangoTemplates',
+ 'DIRS': ['../base/templates'],
+ 'APP_DIRS': True,
+ 'OPTIONS': {
+ 'context_processors': [
+ 'django.template.context_processors.debug',
+ 'django.template.context_processors.request',
+ 'django.contrib.auth.context_processors.auth',
+ 'django.contrib.messages.context_processors.messages',
+ ],
+ },
+ },
+]
+```
+
+Vamos a crear la plantilla que nos dice, pero en una carpeta dentro de base que le llamaremos templates, y dentro con otro directorio que se llame base. Dentro crearemos el html que nos pide.
+
+![](../img/dia16_22.png)
+
+En este fichero vamos a añadir el texto html que queramos.
+```html
+
Lista de pendientes
+
+
+ Elementos |
+
+ {% for tarea in object_list %}
+
+ {{ tarea.titulo }} |
+
+ {% empty %}
+ No hay elementos en esta lista
+ {% endfor %}
+
+```
+
+Entonces, ya veremos nuestra lista en la url:
+
+![](../img/dia16_23.png)
+
+Para personalizar el object_list y que sea más legible, vamos a views y añadimos esta línea a la clase ListaPendientes:
+```python
+context_object_name = 'tareas'
+```
+
+Ya lo podemos cambiar por tareas.
+
## 16.7. - Configurar la vista de Detalle
## 16.8. - Crear Links a Detalle
diff --git a/python-total/dia_16/mi_web/src/proyecto/base/templates/base/tarea_list.html b/python-total/dia_16/mi_web/src/proyecto/base/templates/base/tarea_list.html
new file mode 100644
index 0000000..481b747
--- /dev/null
+++ b/python-total/dia_16/mi_web/src/proyecto/base/templates/base/tarea_list.html
@@ -0,0 +1,19 @@
+Lista de pendientes
+
+
+
+ Elementos |
+
+
+ {% for tarea in tareas %}
+
+
+ {{ tarea.titulo }} |
+
+
+ {% empty %}
+ No hay elementos en esta lista
+
+ {% endfor %}
+
+
\ No newline at end of file
diff --git a/python-total/dia_16/mi_web/src/proyecto/base/urls.py b/python-total/dia_16/mi_web/src/proyecto/base/urls.py
index 49cbcbb..3c7038e 100644
--- a/python-total/dia_16/mi_web/src/proyecto/base/urls.py
+++ b/python-total/dia_16/mi_web/src/proyecto/base/urls.py
@@ -1,7 +1,7 @@
from django.urls import path
-from . import views
+from .views import ListaPendientes
urlpatterns = [
- path('', views.lista_pendientes, name='pendientes')
+ path('', ListaPendientes.as_view(), name='pendientes')
]
diff --git a/python-total/dia_16/mi_web/src/proyecto/base/views.py b/python-total/dia_16/mi_web/src/proyecto/base/views.py
index 79a076f..dfae1fd 100644
--- a/python-total/dia_16/mi_web/src/proyecto/base/views.py
+++ b/python-total/dia_16/mi_web/src/proyecto/base/views.py
@@ -1,8 +1,10 @@
from django.shortcuts import render
-from django.http import HttpResponse
+from django.views.generic.list import ListView
+from .models import Tarea
# Create your views here.
-def lista_pendientes(pedido):
- return HttpResponse('Lista de pendientes')
+class ListaPendientes(ListView):
+ model = Tarea
+ context_object_name = 'tareas'
diff --git a/python-total/dia_16/mi_web/src/proyecto/proyecto/settings.py b/python-total/dia_16/mi_web/src/proyecto/proyecto/settings.py
index 9ebf15b..48da6bf 100644
--- a/python-total/dia_16/mi_web/src/proyecto/proyecto/settings.py
+++ b/python-total/dia_16/mi_web/src/proyecto/proyecto/settings.py
@@ -55,7 +55,7 @@ ROOT_URLCONF = 'proyecto.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
- 'DIRS': [],
+ 'DIRS': ['../base/templates'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
diff --git a/python-total/img/dia16_21.png b/python-total/img/dia16_21.png
new file mode 100644
index 0000000..5ffd8d8
Binary files /dev/null and b/python-total/img/dia16_21.png differ
diff --git a/python-total/img/dia16_22.png b/python-total/img/dia16_22.png
new file mode 100644
index 0000000..7a0d0cf
Binary files /dev/null and b/python-total/img/dia16_22.png differ
diff --git a/python-total/img/dia16_23.png b/python-total/img/dia16_23.png
new file mode 100644
index 0000000..f08788d
Binary files /dev/null and b/python-total/img/dia16_23.png differ