Update day 16

Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
This commit is contained in:
Manuel Vergara 2023-05-23 23:55:18 +02:00
parent 4fb899f0a3
commit 741187de54
6 changed files with 56 additions and 1 deletions

View File

@ -664,6 +664,7 @@ Ahora abrimos un nuevo html que le llamaremos como el sistema lo marca por defec
``` ```
Ahora nos queda importar EliminarTarea en urls.py y añadir el path: Ahora nos queda importar EliminarTarea en urls.py y añadir el path:
```python ```python
path('eliminar-tarea/<int:pk>', EliminarTarea.as_view(), name='eliminar-tarea') path('eliminar-tarea/<int:pk>', EliminarTarea.as_view(), name='eliminar-tarea')
``` ```
@ -673,6 +674,40 @@ Ya podemos eliminar tareas 😎
## 16.13. - Crear la lógica de Logueo / Deslogueo ## 16.13. - Crear la lógica de Logueo / Deslogueo
Vamos a adaptar el fichero principal tarea_list.html para que tenga una condicional que detecte si el usuario está logueado o que enlace una página de logueo. También incluimos una barra horizontal para separarlo del contenido.
```html
<p>
{{request.user}}
</p>
<hr>
```
Podemos ver el logueo con "Inspeccionar elemento" / Application /cookies / sessionid
![](../img/dia16_33.png)
Si lo borramos nos deslogueamos y aparecerá como usuario anonimo.
![](../img/dia16_34.png)
Vamos a poner el anterior fragmento de código dentro de un if, quedando así:
```html
{% if request.user.is_authenticated %}
<p>
{{request.user}}
</p>
<a href="">Salir</a>
{% else %}
<a href="{% url 'login' %}">Iniciar sesión</a>
{% endif %}
```
En el siguiente punto veremos como construir el formulario de logueo.
## 16.14. - Formulario de Logueo / Deslogueo ## 16.14. - Formulario de Logueo / Deslogueo
## 16.15. - Restringir acceso ## 16.15. - Restringir acceso

View File

@ -0,0 +1,9 @@
<h1>Ingresar</h1>
<form method="post" action="">
{% csrf_token %}
{{form.as_p}}
<input type="submit" value="Ingresar">
</form>

View File

@ -1,9 +1,10 @@
from django.urls import path from django.urls import path
from .views import ListaPendientes, DetalleTarea, CrearTarea, EditarTarea, EliminarTarea from .views import ListaPendientes, DetalleTarea, CrearTarea, EditarTarea, EliminarTarea, Logueo
urlpatterns = [ urlpatterns = [
path('', ListaPendientes.as_view(), name='tareas'), path('', ListaPendientes.as_view(), name='tareas'),
path('login/', Logueo.as_view(), name='login'),
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'),
path('editar-tarea/<int:pk>', EditarTarea.as_view(), name='editar-tarea'), path('editar-tarea/<int:pk>', EditarTarea.as_view(), name='editar-tarea'),

View File

@ -2,12 +2,22 @@ from django.shortcuts import render
from django.views.generic.list import ListView from django.views.generic.list import ListView
from django.views.generic.detail import DetailView from django.views.generic.detail import DetailView
from django.views.generic.edit import CreateView, UpdateView, DeleteView from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.contrib.auth.views import LoginView
from django.urls import reverse_lazy from django.urls import reverse_lazy
from .models import Tarea from .models import Tarea
# Create your views here. # Create your views here.
class Logueo(LoginView):
template_name = "base/login.html"
field = '__all__'
redirect_authenticated_user = True
def get_success_url(self):
return reverse_lazy('tareas')
class ListaPendientes(ListView): class ListaPendientes(ListView):
model = Tarea model = Tarea
context_object_name = 'tareas' context_object_name = 'tareas'

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB