diff --git a/python-total/dia_16/README.md b/python-total/dia_16/README.md index 9be524e..d114f2a 100644 --- a/python-total/dia_16/README.md +++ b/python-total/dia_16/README.md @@ -598,11 +598,33 @@ Para rematar, vamos a poner un enlace para volver desde la página del formulari Volver ``` -![](../img/dia16_30.png) +![](../img/dia16_31.png) ## 16.11. - Editar tarea +En base/views.py vamos a importar una nueva clase: +```python +from django.views.generic.edit import CreateView, UpdateView +``` +Y añadimos una nueva clase: +```python +class EditarTarea(UpdateView): +model = Tarea +fields = '__all__' +success_url = reverse_lazy('tareas') +``` + +Y podemos ir a base/urls.py para añadir una nueva página. Importamos EditarTarea y añadimos el path: +```python +path('editar-tarea/', EditarTarea.as_view(), name='editar-tarea') +``` + +Entonces, el html de editar tarea tiene que tener una nueva columna con el hipervínculo de modificar la tarea. Tenemos que añador la celda de cabecera `` y la del enlace `Editar`. + +Dará este resultado: + +![](../img/dia16_32.png) ## 16.12. - Eliminar tarea 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 index 4036698..67d9ca8 100644 --- 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 @@ -6,6 +6,7 @@ Elementos + {% for tarea in tareas %} @@ -13,6 +14,7 @@ {{ tarea.titulo }} Ver + Editar {% empty %} 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 dd28a81..8409899 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,9 +1,10 @@ from django.urls import path -from .views import ListaPendientes, DetalleTarea, CrearTarea +from .views import ListaPendientes, DetalleTarea, CrearTarea, EditarTarea urlpatterns = [ path('', ListaPendientes.as_view(), name='tareas'), path('tarea/', DetalleTarea.as_view(), name='tarea'), - path('crear-tarea/', CrearTarea.as_view(), name='crear-tarea') + path('crear-tarea/', CrearTarea.as_view(), name='crear-tarea'), + path('editar-tarea/', EditarTarea.as_view(), name='editar-tarea') ] 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 06de421..20e675c 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,7 +1,7 @@ from django.shortcuts import render from django.views.generic.list import ListView from django.views.generic.detail import DetailView -from django.views.generic.edit import CreateView +from django.views.generic.edit import CreateView, UpdateView from django.urls import reverse_lazy from .models import Tarea @@ -23,3 +23,9 @@ class CrearTarea(CreateView): model = Tarea fields = '__all__' success_url = reverse_lazy('tareas') + + +class EditarTarea(UpdateView): + model = Tarea + fields = '__all__' + success_url = reverse_lazy('tareas') diff --git a/python-total/img/dia16_32.png b/python-total/img/dia16_32.png new file mode 100644 index 0000000..45d5b91 Binary files /dev/null and b/python-total/img/dia16_32.png differ