Update day 16

Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
This commit is contained in:
Manuel Vergara 2023-05-21 21:59:16 +02:00
parent 9c43d3cad5
commit a6063da5c6
6 changed files with 32 additions and 2 deletions

View File

@ -539,6 +539,7 @@ reverse_lazy se ocupa de redirigir la página cuando encuentre el evento que se
```python ```python
success_url = reverse_lazy('tareas') success_url = reverse_lazy('tareas')
``` ```
Pero al poner tareas tenemos que asegurarnos que en el fichero urls.py tengamos los mismo, que no es así. Tenemos «Pendientes», así que vamos a cambiar este nombre por tareas que tiene más lógica.
De nuevo, tendremos que añadir la nueva página en el fichero urls.py, importando la clase y añadiendo el path. Quedando el documento así: De nuevo, tendremos que añadir la nueva página en el fichero urls.py, importando la clase y añadiendo el path. Quedando el documento así:
```python ```python
@ -546,7 +547,7 @@ from django.urls import path
from .views import ListaPendientes, DetalleTarea, CrearTarea from .views import ListaPendientes, DetalleTarea, CrearTarea
urlpatterns = [ urlpatterns = [
path('', ListaPendientes.as_view(), name='pendientes'), path('', ListaPendientes.as_view(), name='tareas'),
path('tarea/<int:pk>', DetalleTarea.as_view(), name='tarea'), 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')
] ]
@ -568,6 +569,30 @@ Ahora ya podemos ver el enlace que nos lleva a la nueva página creada:
## 16.10. - Formulario para nueva tarea ## 16.10. - Formulario para nueva tarea
Vamos a darle brilo al html del formulario "tarea_form.html". Los campos del formulario se añaden automáticamente con `{{form}}`, pero tenemos que darle un método para que se vea mejor. Por defecto es as_table:
![](../img/dia16_28.png)
Horrible, pero tenemos dos métodos más. Formato lista con as_ul:
![](../img/dia16_29.png)
O como párrafo, as_p, que es el que dejaremos:
![](../img/dia16_30.png)
Ya podemos probarlo, pero tendremos un error. Nos falta un fragmento de código:
```python
{% csrf_token %}
```
El código `{% csrf_token %}` es una directiva utilizada en algunas plantillas o sistemas de generación estática de sitios web, como Hugo o Jekyll.
Esta directiva se utiliza para generar un token de seguridad CSRF (Cross-Site Request Forgery) y se inserta en un formulario HTML. El token CSRF ayuda a prevenir ataques de falsificación de solicitudes entre sitios, asegurando que las solicitudes enviadas al servidor sean legítimas y no provengan de fuentes maliciosas.
El token se genera y se incluye en el formulario para que cuando el usuario envíe el formulario, el servidor pueda verificar que el token es válido y corresponde a la sesión actual del usuario. Esto ayuda a proteger contra ataques en los que un tercero intenta enviar solicitudes maliciosas en nombre del usuario.
Ahora ya podemos crear tareas desde la página creada y que nos reenvíe a la página principal 😎
## 16.11. - Editar tarea ## 16.11. - Editar tarea
## 16.12. - Eliminar tarea ## 16.12. - Eliminar tarea

View File

@ -1,2 +1,7 @@
<h1>Formulario de tareas</h1> <h1>Formulario de tareas</h1>
<form method="post" action="">
{% csrf_token %}
{{form.as_p}}
<input type="submit" value="Enviar">
</form>

View File

@ -3,7 +3,7 @@ from .views import ListaPendientes, DetalleTarea, CrearTarea
urlpatterns = [ urlpatterns = [
path('', ListaPendientes.as_view(), name='pendientes'), path('', ListaPendientes.as_view(), name='tareas'),
path('tarea/<int:pk>', DetalleTarea.as_view(), name='tarea'), 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')
] ]

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB