La expresión regular para validar teléfonos:
r'\+?1?\d{9,15}$
Bienvenida
Todo lo que aprenderás sobre Django
Cimientos
Arquitectura de una aplicación
The Twelve-Factor App
Codebase: Settings modular
Codebase: Dependencias y archivos de docker
Codebase: Docker
Setups alternativos
Modelos
Herencia de modelos
Proxy models
App de usuarios
Organizando modelos en un paquete de Django
Creando el modelo de perfil de usuario
Solución del reto: arreglando la migración de users a user
Aplicación y modelo de círculos
Migraciones y admin de círculos
Introducción a Django REST Framework
Aprende cómo construir tu propio API con Django Rest Framework
Vistas, URLs y Parsers de DRF
Serializers
Buenas prácticas para el diseño de un API REST
Request, response, renderers y parsers
Real DRF
Autenticación y tipos de autenticación
APIView
Creando el token de autorización
User sign up
Limitar login a usuarios con cuenta verificada
Configurar envío de email
Instalar PyJWT y generar tokens
Verificar cuenta usando JWT
Actualizar modelo de circle (membership)
Crear CircleViewSet
Añadiendo autorización y paginación
Creación de circulos
Update de círculo, custom permissions y DRF Mixins
Migración de vistas de usuarios a ViewSets
Detalle de usuario
Update profile data
List members - Recursos anidado
Retrieve destroy member
Modelo de invitaciones y manager
Obtener invitaciones de un miembro
Unirse a grupo
Filtrado
App de rides y modelos
Implementar la publicación de un ride
Validación de campos de un serializer
Listado de rides
Editar un ride
Unirse a viaje
Terminar viaje
Calificar viaje
Tareas asíncronas
¿Qué es Celery?
Creando tarea asíncrona
Creando tarea periódica
Testing
Python unittest y Django TestCase
DRF APITestCase
Django Admin
Admin actions: Modificar datos de un query
Admin actions: Regresando una respuesta HTTP
Deployment
Instalación de la aplicación
Configuración del dominio en Mailgun y del Bucket en Amazon S3
Configuración final de Docker Container usando Supervisor
Tutorial de despliegue de la aplicación
Futuros pasos y cierre del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 25
Preguntas 8
La expresión regular para validar teléfonos:
r'\+?1?\d{9,15}$
Borrar la el volumen de la base de datos. $ docker-compose ps $ docker-compose down $ docker volume ls $ docker volume rm cride_local_postgres_data
Tuve el siguiente problema corriendo el comando tal cual lo muestra el profesor:
gonza@gonza:~/Development/django_avanzado/cride$ docker-compose run --rm django python manage.py makemigrations
ERROR:
Can't find a suitable configuration file in this directory or any
parent. Are you in the right directory?
Supported filenames: docker-compose.yml, docker-compose.yaml
No sé qué era, pero por si a alguien también le pasa, lo solucioné corriendo el comando de la siguiente manera:
gonza@gonza:~/Development/django_avanzado/cride$ docker-compose -f local.yml run --rm django python manage.py makemigrations
Sustitución del modelo User personalizado
Creamos la clase User
heredando de AbstractUser
y agregamos todos los campos que nuestra aplicación necesite.
Luego, en el archivo de configuración (base.py), agregamos: AUTH_USER_MODEL = 'users.User'
Organizar modelos en múltiples archivos
Creamos el directorio models, creamos el archivo __init__.py
, creamos los archivos correspondientes a los modelos (users.py, profiles.py, etc) y dentro del archivo __init__.py
importamos los modelos: from .users import User
Yo preferiría usar r'^\+?1?\d{9,15}$'
como la expresión regular (agregué un ^
al inicio) de este modo asdf+122234567890
no pasaría el validador
Tuve un problema al darle createsuperuser
ValueError: Couldn't load 'Argon2PasswordHasher' algorithm library: No module named 'argon2._ffi'
Solución:
1: requirements/base.py
actualizar la version de argon2
argon2-cffi==20.1.0
2: docker-compose down
3: docker-compose build
4: docker-compose up
¿Por qué importa los modelos en el archivo init.py?
Alguien sabe alguna documentacion de esos validadores:
regex = r’+?1?\d{9,15}$’
Alguien sabe por que me aparece el siguiente error:
(auth.E002) The field named as the 'USERNAME_FIELD' for a custom user model must not be included in 'REQUIRED_FIELDS'.
Tengo un error que no logro solucionar 😦 alguien sabe qué puede estar pasando?
El error es este:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/django/apps/config.py", line 165, in get_model
return self.models[model_name.lower()]
KeyError: 'user'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/django/contrib/auth/__init__.py", line 194, in get_user_model
return django_apps.get_model(settings.AUTH_USER_MODEL, require_ready=False)
File "/usr/local/lib/python3.6/site-packages/django/apps/registry.py", line 202, in get_model
return app_config.get_model(model_name, require_ready=require_ready)
File "/usr/local/lib/python3.6/site-packages/django/apps/config.py", line 168, in get_model
"App '%s' doesn't have a '%s' model." % (self.label, model_name))
LookupError: App 'users' doesn't have a 'User' model.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "manage.py", line 33, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 347, in execute
django.setup()
File "/usr/local/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/local/lib/python3.6/site-packages/django/apps/registry.py", line 120, in populate
app_config.ready()
File "/usr/local/lib/python3.6/site-packages/django/contrib/auth/apps.py", line 21, in ready
if hasattr(get_user_model(), 'last_login'):
File "/usr/local/lib/python3.6/site-packages/django/contrib/auth/__init__.py", line 199, in get_user_model
"AUTH_USER_MODEL refers to model '%s' that has not been installed" % settings.AUTH_USER_MODEL
django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL refers to model 'users.User' that has not been installed
Hola, mira que me esta saliendo este error ¿ sabes por que ?
File “/usr/local/lib/python3.6/site-packages/django/contrib/auth/management/commands/createsuperuser.py”, line 117, in handle
self.UserModel._default_manager.db_manager(database).get_by_natural_key(username)
AttributeError: ‘Manager’ object has no attribute ‘get_by_natural_key’
Tengo un error:
django.db.utils.ProgrammingError: relation "users_user" does not exist
Aquí les dejo un pequeño script para poder utilizar manage .py sin tener que estar repitiendo el comando largo todo el rato.
Para utilizarlo simplemente .\nombreScript .py parametro1 parametro2 parametro…
**
Como yo lo uso: .\bmanage .py createsuperuser **
import sys
import os
command = "docker-compose -f .\local.yml run --rm django python manage.py"
params = ""
# Count the arguments
arguments = len(sys.argv) - 1
# Output argument-wise
position = 1
while (arguments >= position):
params = params + " " + sys.argv[position]
position = position + 1
# Command build
command = command + params
print("(control + c) to exit\n")
os.system(command)
No puedo borar el volumen con el comando
docker volume rm cride-platzi-1-codebase_local_postgres_data
Me sale
Error response from daemon: remove cride-platzi-1-codebase_local_postgres_data: is in use - [b98c789896a89689689c68686c8cd968dc98]
Bajé los containers entre la clase anterior y esta. Ahora no se levantan, no estoy seguro que hacer, primero me salió que el atributo error_message del campo email daba error, y lo comente.
Despues salio esto [Reverse accessor for ‘User.groups’ clashes with reverse accessor for ‘User.groups’].
Le puse en settings base AUTH_USER_MODEL = “users.User” para que sea el modelo default
Despues salio que no tenia migraciones, le hice las migraciones con:
sudo docker-compose -f local.yml run --rm django python manage.py makemigrations
Despues sale el error django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency users.0001_initial on database 'default’
y no se que hacer con esto, algún consejo?
Adicionar en los settings un modelo de usuario custom
correr el container de Django independiente
Correr el comando makemigrations $ docker-compose run --rm django manage.py makemigrations
Error django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency users.0001_initial on database 'default'. Se aplico ya la app de usuarios por defecto antes del usar la custom
Todo perfecto hasta el momento.
SOL: Para aquellos que les sale el siguiente error:
users.User
simplemente es:
Estos cambios los encuentras en la carpeta modelo: (Users, Profiles) tanto como en la ruta
Este es el curso de Expresiones Regulares de Platzi, es muy bueno. https://platzi.com/clases/expresiones-regulares/
Trato de eliminar el servicio y me sale eso, quien me puede ayudar?
docker volume rm cride_local_postgres_data
Error response from daemon: remove cride_local_postgres_data: volume is in use - [9045283faaf5c057fd87dc0ea46e124d53cdf5a8c3bc32b7f36c317025f47add]
Como puedo solucionar este error? :
ERRORS: users.User: (auth.E002) The field named as the 'USERNAME_FIELD' for a custom user model must not be included in 'REQUIRED_FIELDS'.
Tengo varios inconvenientes:
psycopg2.errors.UndefinedTable: relation "users_user" does not exist
y el otro al correr el comando:
cride docker-compose run --rm django --service-ports django
Creating cride_django_run ... done
PostgreSQL is available
/entrypoint: exec: line 43: illegal option --
No encuentro solucion
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.