diff --git a/python-total/dia_16/README.md b/python-total/dia_16/README.md index 0bd20cc..3b47863 100644 --- a/python-total/dia_16/README.md +++ b/python-total/dia_16/README.md @@ -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: + ```python path('eliminar-tarea/', EliminarTarea.as_view(), name='eliminar-tarea') ``` @@ -673,6 +674,40 @@ Ya podemos eliminar tareas 😎 ## 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 +

+ {{request.user}} +

+
+``` + +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 %} + +

+ {{request.user}} +

+ Salir + +{% else %} + + Iniciar sesión + +{% endif %} +``` + +En el siguiente punto veremos como construir el formulario de logueo. + ## 16.14. - Formulario de Logueo / Deslogueo ## 16.15. - Restringir acceso diff --git a/python-total/dia_16/mi_web/src/proyecto/base/templates/base/login.html b/python-total/dia_16/mi_web/src/proyecto/base/templates/base/login.html new file mode 100644 index 0000000..86332c6 --- /dev/null +++ b/python-total/dia_16/mi_web/src/proyecto/base/templates/base/login.html @@ -0,0 +1,9 @@ +

Ingresar

+ +
+ {% csrf_token %} + {{form.as_p}} + + + +
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 799faf3..0aca2cd 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, EditarTarea, EliminarTarea +from .views import ListaPendientes, DetalleTarea, CrearTarea, EditarTarea, EliminarTarea, Logueo urlpatterns = [ path('', ListaPendientes.as_view(), name='tareas'), + path('login/', Logueo.as_view(), name='login'), 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'), 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 67ed032..00bbbb8 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 @@ -2,12 +2,22 @@ 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, DeleteView +from django.contrib.auth.views import LoginView from django.urls import reverse_lazy from .models import Tarea # 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): model = Tarea context_object_name = 'tareas' diff --git a/python-total/img/dia16_33.png b/python-total/img/dia16_33.png new file mode 100644 index 0000000..571c7db Binary files /dev/null and b/python-total/img/dia16_33.png differ diff --git a/python-total/img/dia16_34.png b/python-total/img/dia16_34.png new file mode 100644 index 0000000..659c32d Binary files /dev/null and b/python-total/img/dia16_34.png differ