Bienvenida

1

Todo lo que aprender谩s sobre Django

Cimientos

2

Arquitectura de una aplicaci贸n

3

The Twelve-Factor App

4

Codebase: Settings modular

5

Codebase: Dependencias y archivos de docker

6

Codebase: Docker

7

Setups alternativos

Modelos

8

Herencia de modelos

9

Proxy models

10

App de usuarios

11

Organizando modelos en un paquete de Django

12

Creando el modelo de perfil de usuario

13

Soluci贸n del reto: arreglando la migraci贸n de users a user

14

Aplicaci贸n y modelo de c铆rculos

15

Migraciones y admin de c铆rculos

Introducci贸n a Django REST Framework

16

Aprende c贸mo construir tu propio API con Django Rest Framework

17

Vistas, URLs y Parsers de DRF

18

Serializers

19

Buenas pr谩cticas para el dise帽o de un API REST

20

Request, response, renderers y parsers

Real DRF

21

Autenticaci贸n y tipos de autenticaci贸n

22

APIView

23

Creando el token de autorizaci贸n

24

User sign up

25

Limitar login a usuarios con cuenta verificada

26

Configurar env铆o de email

27

Instalar PyJWT y generar tokens

28

Verificar cuenta usando JWT

29

Actualizar modelo de circle (membership)

30

Crear CircleViewSet

31

A帽adiendo autorizaci贸n y paginaci贸n

32

Creaci贸n de circulos

33

Update de c铆rculo, custom permissions y DRF Mixins

34

Migraci贸n de vistas de usuarios a ViewSets

35

Detalle de usuario

36

Update profile data

37

List members - Recursos anidado

38

Retrieve destroy member

39

Modelo de invitaciones y manager

40

Obtener invitaciones de un miembro

41

Unirse a grupo

42

Filtrado

43

App de rides y modelos

44

Implementar la publicaci贸n de un ride

45

Validaci贸n de campos de un serializer

46

Listado de rides

47

Editar un ride

48

Unirse a viaje

49

Terminar viaje

50

Calificar viaje

Tareas as铆ncronas

51

驴Qu茅 es Celery?

52

Creando tarea as铆ncrona

53

Creando tarea peri贸dica

Testing

54

Python unittest y Django TestCase

55

DRF APITestCase

Django Admin

56

Admin actions: Modificar datos de un query

57

Admin actions: Regresando una respuesta HTTP

Deployment

58

Instalaci贸n de la aplicaci贸n

59

Configuraci贸n del dominio en Mailgun y del Bucket en Amazon S3

60

Configuraci贸n final de Docker Container usando Supervisor

61

Tutorial de despliegue de la aplicaci贸n

62

Futuros pasos y cierre del curso

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Organizando modelos en un paquete de Django

11/62
Recursos
Deconstruir el modelo de Usuario en m煤ltiples archivos dentro de un paquete

Aportes 25

Preguntas 8

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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: 鈥楳anager鈥 object has no attribute 鈥榞et_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 鈥楿ser.groups鈥 clashes with reverse accessor for 鈥楿ser.groups鈥橾.
Le puse en settings base AUTH_USER_MODEL = 鈥渦sers.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:

  1. Cambiar el nombre del modelo users por user
  2. cambien en todo luegar lo que diga User por Users

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