Update day 16
Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
This commit is contained in:
parent
3961f0bb6c
commit
ada9cedc9b
@ -598,11 +598,33 @@ Para rematar, vamos a poner un enlace para volver desde la página del formulari
|
||||
<a href="{% url 'tareas' %}">Volver</a>
|
||||
```
|
||||
|
||||
![](../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/<int:pk>', 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 `<th></th>` y la del enlace `<td><a href="{% url 'editar-tarea' tarea.id %}">Editar</a></td>`.
|
||||
|
||||
Dará este resultado:
|
||||
|
||||
![](../img/dia16_32.png)
|
||||
|
||||
## 16.12. - Eliminar tarea
|
||||
|
||||
|
@ -6,6 +6,7 @@
|
||||
<tr>
|
||||
<th>Elementos</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
|
||||
{% for tarea in tareas %}
|
||||
@ -13,6 +14,7 @@
|
||||
<tr>
|
||||
<td>{{ tarea.titulo }}</td>
|
||||
<td><a href="{% url 'tarea' tarea.id %}">Ver</a></td>
|
||||
<td><a href="{% url 'editar-tarea' tarea.id %}">Editar</a></td>
|
||||
</tr>
|
||||
|
||||
{% empty %}
|
||||
|
@ -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/<int:pk>', 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/<int:pk>', EditarTarea.as_view(), name='editar-tarea')
|
||||
]
|
||||
|
@ -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')
|
||||
|
BIN
python-total/img/dia16_32.png
Normal file
BIN
python-total/img/dia16_32.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 27 KiB |
Loading…
Reference in New Issue
Block a user