Error ui en mi app
Introducción
Qué aprenderás sobre Django
Historia de web development
Preparación del entorno de trabajo en Mac
Preparación del entorno de trabajo en Windows y Linux
Creación del proyecto Platzigram / Tu primer Hola, mundo! en Django
Vistas
El objeto Request
Solución al reto - Pasando argumentos en la URL
Creación de la primera app
Introducción al template system
Patrones de diseño y Django
Models
La M en el MTV
El ORM de Django
Glosario
Extendiendo el modelo de usuario
Implementación del modelo de usuarios de Platzigram
Explorando el dashboard de administración
Dashboard de Administración
Creación del modelo de posts
Templates, auth y middlewares
Templates y archivos estáticos
Login
Logout
Signup
Middlewares
Forms
Formularios en Django
Mostrando el form en el template
Model forms
Validación de formularios
Class-based views
Class-based views
Protegiendo la vista de perfil, Detail View y List View
CreateView, FormView y UpdateView
Generic auth views
Deployment
Arquirectura / Conceptos / Componentes
¿Cómo conectar Django a una base de datos?
Configurar el servidor
Preparación del VPS (en AWS)
Conclusiones del curso
Bonus
¿Cómo usar los templates en Django?
Aún no tienes acceso a esta clase
Crea una cuenta y continúa viendo este curso
Completaremos el flujo de autenticación del usuario que iniciamos en la clase anterior agregando la funcionalidad de Logout. Ademas incorporamos algo de estilos al formulario de Login.
Aportes 28
Preguntas 5
Error ui en mi app
Aquí es importante construir bien el loguin ya que debemos evitar que cuando construyamos el logout cualquier persona no logueada pueda entrar en los posts con la url es por ello que debemos usar el decorador login_required. Esto nos permitirá que solo personas logueadas puedan ver los posts.
Creo que es necesario que en la vista de login se valide si ya está el usuario autenticado, en caso contrario, pudiera loguearse con otra cuenta y ocasiona errores, con un if quedaría resuelto
if request.user.is_authenticated:
redirect("posts")
Excelente clases
Me siento muy a gusto con este curso
return render (request, ‘users/login.html’,
{‘error’: ‘Invalid username and password’})
Si en lugar de usar “render” utilizamos un:
return redirect ( ‘login’)
Es valido? o pueden explicarme la funcion render para que funciona?
Para hacer un logout, solo tenemos que importar de django.contrib.auth, logout y sha. xD
Les dejo mi github https://github.com/jparadae donde subo el progreso de mi curso
muy sencillo el login de usuario, django expresa sencillez en el codigo
o pablo explica muy bien y for dummizzzz o como el dijo la curva de aprendizaje es muy rapida
¿Por qué cuando se recarga la página por primera vez, en vez de envíar un GET envía un POST y por ende colocando el mensaje de error definido?
Tambien podemos agregar librerias de terceros en mi caso use sweetalert2 para mostrar este mensaje.
<script>
let error = '{{error}}';
if (error.length > 0) {
Swal.fire({
icon: 'error',
title: 'Oops...',
text: error,
// footer: '<a href="">Why do I have this issue?</a>'
})
}
</script>
Por si a alguien le interesa, hice el form de login asi:
<form action="{% url 'login' %}" method="POST">
{% csrf_token %}
<div class="mb-3">
<input class="form-control" type="text" name="username" id="" , placeholder="Username">
</div>
<div class="mb-3">
<input class="form-control" type="password" name="password" id="" placeholder="Password">
</div>
<div class="mb-3">
<button class="btn btn-primary form-control" type="submit">Sign in</button>
</div>
</form>
El navegador no encontraba el archivo de estilo indicado a pesar del código, y configuración exacta de bootstrap.min.css
Solución: Hice una copia exacta del anterior al que quería de a huevo con el nombre bootstrap.css
En django<=3 El decorador de login_required no es necesario, la documentación dice que no genera ningun error:
Note that logout() doesn’t throw any errors if the user wasn’t logged in.
When you call logout(), the session data for the current request is completely cleaned out. All existing data is removed. This is to prevent another person from using the same Web browser to log in and have access to the previous user’s session data. If you want to put anything into the session that will be available to the user immediately after logging out, do that after calling django.contrib.auth.logout().
Logre encontrar una solución para el problema del boton de regresar al hacer logout, esto se debía al cache del navegador, se debe dar la orden de eliminarlo, el codigo es el siguiente:
from django.views.decorators.cache import never_cache
@never_cache
def list_post(request):
Me fusta estas clases.
Cuando me no se hice login y trate de entrar a posts directamente desde la URL en el navegador, me genero un error.
Para solucionarlo tuve que indicarle al la funcion view de post hacia que vista dirigirse en caso de que el usuario no este logeado, esto lo hice por medio del decorador, así
@login_required(login_url=‘login’)
Espero les pueda servir
tengo una duda, cuando estoy haciendo el login la contraseña sale descubierta, como hago para que salgan los asteriscos y no la contraseña como tal?
Excelente se esta viendo el fruto del trabajo xD jejeje
Excelente, Muchas Gracias.
me gustaria saber como dentro de la funcion lost_posts podria obtener los datos del usuario activo en la sesion?
Muy facil! Buen profesor
Comparado con lo que se debería hacer con Node.js, Python facilita mucho éste proceso.
Por qué es necesario el login_requiered si hasta ahora no hay manera de que el usuario anónimo vea el botón de Logout?
Estaria genial aprender mas sobre bootstrap de esa forma
Espectacular, en verdad
No explica como consigue los iconos de Logout
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.