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

Creaci贸n de circulos

32/62
Recursos

Aportes 9

Preguntas 1

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

Y que pasa si por ejemplo queremos solo cambiar el limite de miembros? Por ejemplo con el verbo PATCH pues que nos da error. Para eso se me ocurrio poner una sencilla verificacion antes de validar todo esto.

Les dejo la funcion completa aqui

  def validate(self, data):
        """Verifies congruence between is_limited and members_limit fields."""

        method = self.context['request'].method
        
        if method == 'POST':
            members_limit = data.get('members_limit', None)
            is_limited = data.get('is_limited', False)

            if bool(members_limit) ^ is_limited:
                raise serializers.ValidationError('If there is members_limit or is_limited both need to exist.')

        return data

hola, quer铆a hacer debug a el c贸digo desde pycharm a la parte de la clase que hereda modelViewset, no me funcionaba y me pens茅 que hab铆a des configurado algo, pero buscando esto es normal https://stackoverflow.com/questions/41637025/pycharm-debug-django-rest-viewsets

Si quieren incluir el usuario activo como default en el ModelSerializer pueden usar

user = serializers.HiddenField(
default=serializers.CurrentUserDefault(),
)

Me parecio muy buena idea user la operacion XOR, a mi no se me habria ocurrido, pero me parece que no es tan clara de leer y resta la capacidad de proveer errores mas descriptivos a nuestros usuarios. Mi propuesta es:

def validate(self, data):
    """Ensure both members_limit and is_limited are present."""
    members_limit = data.get('members_limit', None)
    is_limited = data.get('is_limited', False)

    if not members_limit and is_limited:
        raise serializers.ValidationError(
            'If circle is limited a members limit must be provided.'
        )
    elif members_limit and not is_limited:
        raise serializers.ValidationError(
            'If circle is not limited a members limit must not be provided.'
        )

    return data

Importante hacer referencia a la decision de dise帽o que tuvo pablo al NO poner el administrador en el modelo del circulo que HACIA mas sentido 鈥榙iagramalmente鈥 pero aca simplifica tanto las cosas que tal vez fue esa la razon.

驴Estoy quedando bobo o el video est谩 repetido con el anterior? 驴Acaso es un bug?

Hola a todos, cuando corro manage.py migrate obtengo este error:

django.db.utils.ProgrammingError: relation 鈥渃ircles_membership鈥 does not exist

No puedo encontrar la soluci贸n. A alguien le pas贸?

Gracias

cuando haces user.profile en perform_create significa q el profile ya estaba dentro de user o se manda a llamar al modelo (db)?

Es correcto agregar logica de negocio en las vistas?.

Estuve viendo algunos articulos y recomiendan agregarla en los modelos y otro recomienda agregar una 4ta capa de casos de uso especificos para la logica.