Ricardo José Mardelli Godoy
Usando tailwind y modelos de hyperui
¿Cómo crear una aplicación de usuarios en Django?
Crear una aplicación de usuarios en Django puede parecer una tarea compleja al principio, pero no te preocupes, ¡es más sencillo de lo que parece! Django nos proporciona herramientas robustas y listas para utilizar, facilitando la implementación de la administración de usuarios, como el registro y login. En este paso a paso, te mostraré cómo separar tus aplicaciones por dominios, registrarlas correctamente y utilizar herramientas innovadoras para estilizar tus formularios.
¿Cómo separar aplicaciones por dominios en Django?
Lo primero que debes saber es que la organización de tus proyectos en Django por dominios es fundamental para asegurar un código limpio y mantenible. Esto significa que cada aplicación dentro de tu proyecto debe tener una responsabilidad específica.
Manage startapp Users.Settings.py dentro del diccionario Installed Apps.urls.py para manejar las rutas específicas de la nueva aplicación Users.¿Cómo usar las vistas integradas de Django para usuarios?
Django ofrece múltiples vistas listas para ser utilizadas, que simplifican el manejo de usuarios.
from django.contrib.auth.views import LoginView urlpatterns = [ path('login/', LoginView.as_view(template_name='users/login.html'), name='login'), ]
templates/users para personalizar la vista de login.¿Cómo estilizar formularios con Crispy Forms y Tailwind?
Personalizar la apariencia de los formularios puede hacer una gran diferencia en la experiencia del usuario.
Crispy Tailwind en tu proyecto para utilizar estos estilos en los formularios.pip install django-crispy-forms[>=1.14.0]<2.0 crispy-tailwind
crispy_forms y crispy_tailwind a Installed Apps.<form method="POST">{% crispy form %}</form> en tus templates para aplicar estilos automáticamente.¿Cómo configurar redirección y autenticación en Django?
La configuración de redirección es crucial para guiar correctamente a los usuarios después del login.
LOGIN_REDIRECT_URL en Settings.py para determinar la URL de destino tras un login exitoso.POST y asegura la seguridad con {% csrf_token %}.¿Cómo mostrar mensajes personalizados para usuarios loggeados?
Personalizar la interfaz dependiendo del estado del usuario mejora la interactividad de tu aplicación.
{% if user.is_authenticated %} <p>Hola, {{ user.username }}</p> {% else %} <a href="{% url 'login' %}">Login</a> {% endif %}
¿Cómo implementar un sistema de logout con Django?
Django simplifica la creación de una vista de logout mediante LogoutView.
LogoutView.¡Felicitaciones! Ahora tienes una aplicación de usuarios completamente funcional en Django, desde el login, estilos de formularios, hasta la administración de sesiones. Explora más en la documentación e implementa características adicionales. ¡El único límite es tu creatividad!
Ricardo José Mardelli Godoy
Usando tailwind y modelos de hyperui
Santiago Amaya
no se mucho pero pues con ayuda de gpt y esta clase logre lo siguiente
Josue Quichca
Register aun no tiene utilidad, pero ahí vamos
Luis Martinez
ProfesorEstá tomando buen rumbo el diseño!
Marco Esparza
Company_adminPara cuando el resumen? es de gran ayuda para estar guardando los apuntes
jesus manuel vergara arias
Tomando forma:
Osmar Botello
asi quedo mi pantalla de login
y asi quedo mi boton de logout, solo lo apunte hacia la pantalla de login nuevamente.
Andres Ricardo Martinez Diaz
Login con Tailwind, saque el componente de
Bryan Castano
Hi Guys, \nIt is Mine!
Ernesto Jose Gomez Flores
Bernar Serrano Rubiano
Casi muero pero lo logre:
Ana Steisel
La primera mitad del curso me costó mucho, pero poco a poco fluyendo
Luis Martinez
ProfesorY qué lindo que te va quedando el login, ¿te ha gustado más el frontend o el backend?
Sergio Danilo Palacios Castillo
Solución del Reto
Desde users.urls.py se importa LogoutView, y dentro de la lista de urls se agrega:
path("ENDPOINT/", LogOutView.as_view(next_page"PATH_NAME"), name="logOut")) ```Importante agregar el argumento \<form action="" method="post"> {% csrf\\\_token %} {{ form|crispy }} \\\<button class="inline-block rounded-sm border border-indigo-600 bg-indigo-600 px-12 py-3 text-sm font-medium text-white hover:bg-transparent hover:text-indigo-600 focus:ring-3 focus:outline-hidden" type="submit" > Login \\\</button>\\\</form>`next_page` dentro de la vista. Por ultimo, en el template debemos poner el LOGOUT como sí fuera un formulario, ya que hacemos una petición al servidor, el metodo debe ser POST ```html <form action="{% url "logOut" %}" method="post"> {% csrf\_token %} <button type="submit">LogOut</button> </form>
Robert Yesid Barrios Acendra
Tengo el código tal cual lo hicieron pero me sale un erro 404, hasta la clase anterior todo bien, pero ya no. No puedo pasar del minuto 3. ¿Alguien que pueda ayudarme?
Pablo Chacaguasay
Estamos en las mismas :(
Miguel Angel Castillo Enriquez
Recuerda colocar todo las '/' al final de login debes colocar '/' ojala te pude ayudar
Andres Montes
cerra sesion me toco con una funcion portq con la clase logoutview no me dejaba
urlpatterns = [ path('login/', LoginView.as_view(template_name='users/login.html'), name='login'), path('logout/', logout_view, name= 'logout' ) ] ```en views quedo asi```python from django.shortcuts import render from django.contrib.auth import logout from django.shortcuts import redirect from django.contrib.auth.decorators import login_required @login_required def logout_view(request): logout(request) return redirect('login')
Miguel Angel Reyes Moreno
Cristhian Javier Delgado Fonseca
Andres Rivera
Usando Tailwind y free open source tailwind
Jarol Jiménez
Victor Nuñez
Tengo la duda de porque el formulario funciona aunque no tenga un action definido ?
Luis Martinez
ProfesorEl action que toma es la misma URL donde esta actualmente. Por eso funciona.
Para el logout agregué en settings.py: LOGOUT_REDIRECT_URL = "login"
en urls.py:
from django.contrib.auth.views import LoginView, LogoutViewfrom django.urls import path urlpatterns = \[ path("login/", LoginView.as\_view(template\_name="users/login.html"), name="login"), path("logout/", LogoutView.as\_view(), name="logout"),]
login.html:
{% extends "base.html" %} {% load tailwind\_filters %} {% block content %}\<h1 class="text-2xl font-bold text-gray-900 sm:text-3xl mb-5">Iniciar sesión\</h2> {% if user.is\_authenticated %} \<p>Hola, {{user.username}}\</p>{% endif %} \<form action="" method="post"> {% csrf\_token %} {{ form|crispy }} \<button class="inline-block rounded-sm border border-indigo-600 bg-indigo-600 px-12 py-3 text-sm font-medium text-white hover:bg-transparent hover:text-indigo-600 focus:ring-3 focus:outline-hidden" type="submit" > Login \</button>\</form>{% endblock content %}
en product_list.html agregué un footer:
\<footer class="bg-gray-200"> {% if user.is\_authenticated %} \<form action="{% url "logout" %}" method="post"> {% csrf\_token %} \<button type="submit">Logout\</button> \</form> {% endif %}\</footer>