Este documento presenta los temas que se cubrirán en el día 3 de un curso avanzado de Django. Se recapitularán los middlewares y factory_boy, y se verán los backends de autenticación personalizados, modelos de usuario personalizados y señales. Los ejercicios incluyen crear un backend de autenticación que permita el inicio de sesión con un usuario hardcoded y extender el modelo de usuario base para incluir fecha de nacimiento y altura.
4. DÍA 3:AUTHENTICATION
BACKEND
• Sirven para autenticar (y autorizar) usuarios
• Puede haber más de uno
• https://docs.djangoproject.com/en/1.6/topics/auth/
customizing/#other-authentication-sources
• EJERCICIO: Crear un authentication backend, que entre con
el usuario “admin” si se entra con un usuario
“hardcodeado”.
5. DÍA 3: CUSTOM USER MODEL
• Se puede extender el modelo de usuarios (OneToOne)
• Se puede crear un modelo de usuarios completamente desde 0
(AbstractBaseUser)
• Se puede crear un modelo de usuarios, partiendo del
django.contrib.auth.models.User (AbstractUser)
• Ejercicio: Crea un modelo de usuarios que contenga, la fecha de nacimiento y
la altura del usuario
• Ejercicio: Crea un authentication backend que solo permita validarse a las
personas nacidas antes del 01/01/1990
6. DÍA 3: SEÑALES
• Implementan el patrón “observer” (AKA PUB/SUB)
• https://docs.djangoproject.com/en/1.6/topics/signals/
• https://docs.djangoproject.com/en/1.6/ref/signals/
• http://www.shutupandship.com/2012/04/django-signals-and-observer-design.html
• OJO: Las señales son SíNCRONAS
• EJERCICIO: Crear una señal que cuando se cree o modifique un post, cree la entrada en la tabla
de Visits e incremente el valor del contador en 1.
• EJERCICIO: Crear una clase “perfil” con un OneToOne a nuestro modelo de usuario y que incluya
las preferencias culinarias de cada usuario. El perfil se debe crear cuando se crea el usuario y
debe mostrar que le gusta la comida italiana (a todo el mundo le gusta).
7. DÍA 3: FIN
• Mañana hablaremos sobre:
• Comandos de gestión personalizados
• Multiples bases de datos