From c317b46db0920c1f988d6423346058946b78121b Mon Sep 17 00:00:00 2001 From: Manuel Vergara Date: Mon, 22 May 2023 20:52:18 +0200 Subject: [PATCH] Update day 16 Signed-off-by: Manuel Vergara --- python-total/dia_16/README.md | 43 +++++++++++++++++++ .../templates/base/tarea_confirm_delete.html | 8 ++++ .../base/templates/base/tarea_list.html | 2 + .../dia_16/mi_web/src/proyecto/base/urls.py | 5 ++- .../dia_16/mi_web/src/proyecto/base/views.py | 8 +++- 5 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 python-total/dia_16/mi_web/src/proyecto/base/templates/base/tarea_confirm_delete.html diff --git a/python-total/dia_16/README.md b/python-total/dia_16/README.md index d114f2a..0bd20cc 100644 --- a/python-total/dia_16/README.md +++ b/python-total/dia_16/README.md @@ -628,6 +628,49 @@ Dará este resultado: ## 16.12. - Eliminar tarea +Esto será muy parecido a lo anterior. Vayamos por documentos. +Añadimos en tarea_list.html: +```html + +``` + +y: +```html +Eliminar +``` + +En views.py importamos la clase DeleteView +```python +from django.views.generic.edit import CreateView, UpdateView, DeleteView +``` + +y añadimos una nueva clase: +```python +class EliminarTarea(DeleteView): + model = Tarea + context_object_name = 'tarea' + success_url = reverse_lazy('tareas') +``` + +Ahora abrimos un nuevo html que le llamaremos como el sistema lo marca por defecto, tarea_confirm_delete.html y añadimos: +```html +Volver + +
+ {% csrf_token %} +

Vas a eliminar esta tarea: "{{tarea}}"

+ +
+``` + +Ahora nos queda importar EliminarTarea en urls.py y añadir el path: +```python +path('eliminar-tarea/', EliminarTarea.as_view(), name='eliminar-tarea') +``` + +Ya podemos eliminar tareas 😎 + + ## 16.13. - Crear la lógica de Logueo / Deslogueo ## 16.14. - Formulario de Logueo / Deslogueo diff --git a/python-total/dia_16/mi_web/src/proyecto/base/templates/base/tarea_confirm_delete.html b/python-total/dia_16/mi_web/src/proyecto/base/templates/base/tarea_confirm_delete.html new file mode 100644 index 0000000..91543d2 --- /dev/null +++ b/python-total/dia_16/mi_web/src/proyecto/base/templates/base/tarea_confirm_delete.html @@ -0,0 +1,8 @@ + +Volver + +
+ {% csrf_token %} +

Vas a eliminar esta tarea: "{{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 67d9ca8..fd7fae8 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 @@ -7,6 +7,7 @@ Elementos + {% for tarea in tareas %} @@ -15,6 +16,7 @@ {{ tarea.titulo }} Ver Editar + Eliminar {% 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 8409899..799faf3 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,10 +1,11 @@ from django.urls import path -from .views import ListaPendientes, DetalleTarea, CrearTarea, EditarTarea +from .views import ListaPendientes, DetalleTarea, CrearTarea, EditarTarea, EliminarTarea urlpatterns = [ path('', ListaPendientes.as_view(), name='tareas'), path('tarea/', DetalleTarea.as_view(), name='tarea'), path('crear-tarea/', CrearTarea.as_view(), name='crear-tarea'), - path('editar-tarea/', EditarTarea.as_view(), name='editar-tarea') + path('editar-tarea/', EditarTarea.as_view(), name='editar-tarea'), + path('eliminar-tarea/', EliminarTarea.as_view(), name='eliminar-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 20e675c..67ed032 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, UpdateView +from django.views.generic.edit import CreateView, UpdateView, DeleteView from django.urls import reverse_lazy from .models import Tarea @@ -29,3 +29,9 @@ class EditarTarea(UpdateView): model = Tarea fields = '__all__' success_url = reverse_lazy('tareas') + + +class EliminarTarea(DeleteView): + model = Tarea + context_object_name = 'tarea' + success_url = reverse_lazy('tareas')