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
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
Aún no tienes acceso a esta clase
Crea una cuenta y continúa viendo este curso
Aportes 9
Preguntas 0
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
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.