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

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

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

13/62
Recursos

Aportes 9

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

También podemos usar “squash migrations” para no estar borrando a cada rato los volumes o la bd, y esto si es algo que se puede hacer en producción

https://docs.djangoproject.com/en/3.0/topics/migrations/#migration-squashing

Esta es mi solución al reto:

"""User models admin."""

# Django
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin

# Models
from cride.users.models import User, Profile

@admin.register(Profile)
class ProfileAdmin(admin.ModelAdmin):
  """Profile model admin."""
  list_display = ('user', 'reputation', 'rides_taken', 'rides_offered')
  search_fields = ('user__username', 'user__email', 'user__first_name', 'user__last_name')
  list_filter = ('reputation',)

  fieldsets = (
    ('Profile', {
      'fields': (
        ('user', 'picture'),
        ('biography')
      )
    }),
    ('Stats', {
      'fields': (
        ('reputation'),
        ('rides_taken', 'rides_offered'),
      )
    }),
    ('Metadata', {
      'fields': (('created', 'modified'),),
    })
  )

  readonly_fields = ('created', 'modified')

class ProfileInLine(admin.StackedInline):
  model = Profile
  can_delete = False
  verbose_name_plural = 'profiles'

class CustomUserAdmin(UserAdmin):
  """User model admin."""
  inlines = (ProfileInLine,)
  list_display = ('email', 'username', 'first_name', 'last_name', 'is_staff', 'is_client')
  list_filter = ('is_client', 'is_staff', 'created', 'modified')

admin.site.register(User, CustomUserAdmin)

Recomiendo que se salten de la clase 7 vayan a la 9 y la esta clase 8 la vean despues de la clase 13 “Creando el modelo de perfil de usuario” y luego continuen con la 14 normal.

de donde sale este reto? si clase anterior hablaron de setups alternativos

El titulo sería de users a user. No viceversa.

He encontrado un sitio interesante que habla sobre el Admin de Django:
https://developer.mozilla.org/es/docs/Learn/Server-side/Django/Admin_site

No he visto o no me he dado cuenta de que resuelva una duda. ¿Se podría insertar, por ejemplo Profile, dentro de User en el admin de Django?

Esto sería muy util, por ejemplo, si yo tengo un sistema de tickets, y quiero utilizar el Django de Admin para administrar los tickets siendo SuperAdmin, poder leer/gestionar los comentarios dentro de la configuración en el Admin de un ticket determinado.

@admin.register(Profiles)
class ProfilesAdmin(admin.ModelAdmin):
    """Profile admin register."""

    list_display = ('user', 'picture', 'biography', 'rides_taken', 'rides_offered', 'reputation',)
    search_fields = ('user__username', 'user__email', 'user__first_name', 'user__last_name',)
    list_filter = ('reputation',)
    list_editable = ('biography',)
    list_display_links = ('user',)

    fieldsets = (
        ('Profile', {
            'fields': (
                ('user', 'picture')
            ),
        }),
        ('Rides', {
            'fields': (
                ('rides_taken', 'rides_offered')
            ),
        }),
        ('Reputation', {
            'fields': (
                ('reputation',)
            ),
        }),
        ('Rides', {
            'fields': (
                ('biography',)
            ),
        }),
    )```

evidentemente se saltaron una clase donde debe aparecer todo el codigo de los modelos y vistas y parte del admin.

Podran darle solucion a esto lo antes posible ?, gracias.

Esta desordenado este video, pero para que no se pierdan este video va por esta rama

https://github.com/pablotrinidad/cride-platzi/tree/5/Profile-model