A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Conclusiones del curso

36/37
Recursos

Felicidades, hemos llegado al final del curso.

Reto final
Ahora te toca a t铆 agregar la funcionalidad de seguir a usuarios y de darle like a publicaciones.

Te recomiendo que siempre est茅s leyendo el c贸digo fuente y la documentaci贸n oficial, ya que son los puntos fuertes de Django. Ac茅rcate a la comunidad, ac茅rcate a los foros y mantente actualizado.

Tenemos m谩s contenido planeado para este curso as铆 que cu茅ntanos qu茅 te gustar铆a ver a futuro.

Aportes 30

Preguntas 5

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Dos cosas no me gustaron del curso, por lo dem谩s fue perfecto.

  • Que no se resolvieron los 2 retos planteados al final (para verificar si lo que uno estaba pensando era lo correcto o no).
  • Un v铆deo que fuera al detalle de c贸mo desplegar django a producci贸n.

No s茅 como ser铆an los anteriores cursos de django, sin embargo 茅ste no llen贸 mis expectativas, siento que se expusieron los conceptos de af谩n y no se presentaron todas las soluciones a los retos.
Creo que si es necesario , hacer m谩s para dummies el inicio , as铆 sea un curso b谩sico ,uno mediano y finalmente el avanzado (que ya existe).
Para m铆 que entraba a este mundo por primera vez fu茅 dif铆cil cogerle el ritmo, a veces se tornaba aburridor y mon贸tono, para ser un curso pago me falt贸 m谩s pedagog铆a y mejor explicaci贸n en algunos conceptos.
Creo que todo se puede mejorar, pero por ahora tendr茅 que seguir mirando y leyendo, tristemente no todo est谩 muy claro.

Es bueno el curso pero realmente la parte de deployment qued贸 muy b谩sico. Deber铆a haber mucha m谩s informaci贸n, p谩ginas disponibles o servicios no solo un poco de texto.

Conclusion鈥 lee la documentacion, ahi esta todo.

Todo iba muy bien, pero al parecer se acabo el presupuesto justo en el deployment

He hecho los siguientes cambios en el proyecto por el momento:

  • Cambie todas las importaciones directas de User a usar get_user_model. Seg煤n la documentaci贸n de Django, no es recomendado hacer el import directamente del modelo.

  • Cree una se帽al para que el Profile se cree autom谩ticamente cuando crees nuevo usuario.

  • Elimine el Middleware que obliga a poner imagen y URL. Aunque se que era necesario para explicar Middlewares, la verdad no le veo ningun uso en la vida real. Quizas despues encuentre un mejor uso mientras realizo el reto de agregar follow y like.

Les dejo mi repositorio por si desean ver los cambios que he hecho https://github.com/d4vsanchez/platzigram, los commits est谩n descriptivos para que se puedan encontrar f谩cilmente los cambios.

Excelente el curso! cubri贸 much铆simo! se hizo largo pero fue genial!

Comparto lo que dicen mis compa帽eros. Fue uno de los mejores cursos de Django. Pero si pudieran subir la soluci贸n de los retos, seria estupendo, ya que tengo dudas:
La funcionalidad de seguir usuarios seria crear un campo donde sea una relacion de muchos a muchos con los usuarios seguidos o crear un nuevo modelo que almacene los ids del usuario seguidor como del seguido?

Realmente decepcionado.

El curso me pareci贸 genial, pero por parte del profesor en un a帽o en Platzi es de las peores experiencias, yo s茅 que todo est谩 en la documentaci贸n, pero si nos suscribimos a Platzi esperamos algo que nos ayude a aprender de forma m谩s eficaz que es uno de sus propios lemas de Platzi, este curso tiene sus pros y contras, pero tiene m谩s contras, espero una actualizaci贸n de este curso.

dejo aqu铆 mi proyecto finalizado
https://instragram-clone.herokuapp.com

Buen d铆a, estoy intentando desplegar la aplicaci贸n en google cloud, pero no me est谩n cargando los archivos est谩ticos, me podr铆an ayudar?. env铆o el c贸digo por si alguno sabe c贸mo solucionarlo.

"""
Django settings for fleetingram project.

Generated by 'django-admin startproject' using Django 2.2.5.

For more information on this file, see
https://docs.djangoproject.com/en/2.2/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/2.2/ref/settings/
"""

import os

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '03u$15([email protected]%=_oehgygx%gw82zao+4a!f5(w=spco7j66s'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

ALLOWED_HOSTS = ['conexe.appspot.com']


# Application definition

INSTALLED_APPS = [
    # Django apps
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    # Local apps
    'posts',
    'users',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'fleetingram.middleware.ProfileCompletionMiddleware',
]

ROOT_URLCONF = 'fleetingram.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            os.path.join(BASE_DIR, 'templates')

        ],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'fleetingram.wsgi.application'


# Database
# https://docs.djangoproject.com/en/2.2/ref/settings/#databases

if os.getenv('GAE_APPLICATION', None):
    # Running on production App Engine, so connect to Google Cloud SQL using
    # the unix socket at /cloudsql/<your-cloudsql-connection string>

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'USER': 'crincon',
            'PASSWORD': 'Berseker00',
            'NAME': 'FLEETINGRAMCORE',
            'HOST': '/cloudsql/conexe:us-central1:fleetingramcore',
        }
    }
else:
    # Running locally so connect to either a local MySQL instance or connect to
    # Cloud SQL via the proxy. To start the proxy via command line:
    #
    #     $ cloud_sql_proxy -instances=[INSTANCE_CONNECTION_NAME]=tcp:3306
    #
    # See https://cloud.google.com/sql/docs/mysql-connect-proxy
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'HOST': '127.0.0.1',
            'PORT': '3306',
            'NAME': 'FLEETINGRAMCORE',
            'USER': 'crincon',
            'PASSWORD': 'Berseker00',
        }
    }


# Password validation
# https://docs.djangoproject.com/en/2.2/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]


# Internationalization
# https://docs.djangoproject.com/en/2.2/topics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.2/howto/static-files/

BUCKET_NAME = 'conexe.appspot.com'

STATIC_URL = os.path.join('https://storage.googleapis.com',BUCKET_NAME, '/static/')

STATIC_ROOT = os.path.join(BASE_DIR,'static')

"""STATICFILES_DIRS = (

    os.path.join(BASE_DIR, 'static'),
    STATIC_ROOT,

)
"""

STATICFILES_FINDERS = [

    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',

]


MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'


LOGIN_URL = '/users/login/'
LOGIN_REDIRECT_URL = '/'
LOGOUT_REDIRECT_URL = LOGIN_URL

Respondiendo a la duda de pablo, algo que seria buenisimo para el curso es que se le agregue un video resolviendo los dos retos planteados al final. Maravilloso curso

Para que chequen que tal quedo Mi pagina

Este curso est谩 muy bueno para el conocimiento de la forma en c贸mo gestionar el modelo template view con django. Desde vistas basadas en funciones hasta el uso de clases. Fue de mucho provecho los temas, aunque algunas explicaciones adicionales a algunas secciones ya para finalizar no estar铆a mal. Comparto la sensaci贸n de inconformidad respecto a videos que expliquen c贸mo hacer el deployment del proyecto. Tambi茅n me hubiese gustado que trataran m谩s sobre el uso de gestores de base de datos como MySql o postgress. Ac谩 tengo algunas dudas todav铆a. A煤n as铆, gracias profe Pablo por su excelente curso.

Ando muy tilt con este curso, siento que no aprend铆 nada, esto fue m谩s un paso a paso, hice toda la ruta previa de desarrollo backend con django para llegar a estos dos 煤ltimos cursos y encontrarme con este curso tan precario.

馃憤馃憤馃憤

El curso fue de mas a menos. Desde el mod煤lo de Class-based view Pablo explicaba las cosas de paso. Adem谩s, no poder ver los videos de como hacer el deployment fue muy triste. Tambi茅n, hubiera sido instructivo mostrar como configurar el entorno virtual en Mac, Windows (usando WSL2) y linux , explicado en diferentes videos. Es hora de actulizar el curso. Puntos positivos: Antes del curso no tenia idea de como funcionaba Django, este curso sento las bases. Muchas gracias

Ahora solo tengo que volver 15 a帽os al pasado y habr茅 creado Instagram.

El curso termino de manera abrupta

Hizo falta los videos del deploy, se cerro el curso de mala forma

Como guardo el estado de los me gusta en el fronted porque al refrescar la pagina se borran los likes almacenados en la base de datos.

He tomado algunos cursos online y en muchos he tenido que aumentar o disminuir la velocidad del video, pero este fue a la velocidad necesaria para explicar y absorber los conocimientos sobre Django!

Gracias por el curso, muy bueno!!!

Excelente el curso鈥 se me ah presentado un problema cuando quiero actualziar a un user o cuando lo redirige a la hora de hacer loggin y ser nuevo no deja por que me manda este error鈥

AttributeError at /users/me/profile/
Generic detail view UpdateProfileView must be called with either an object pk or a slug in the URLconf.
Request Method:	GET
Request URL:	http://localhost:8000/users/me/profile/
Django Version:	2.1.2
Exception Type:	AttributeError
Exception Value:	
Generic detail view UpdateProfileView must be called with either an object pk or a slug in the URLconf.

No se si a alguien mas le ah pasado y que puede que tenga malo ?

falto una buena explicacion de como hacer deploy, ojala rehagan este curso ya que iba muy bien al inicio.

En conclusi贸n se mostraron temas generales, falt贸:
Video despliegue aplicaci贸n en producci贸n.
Video despliegue aplicaci贸n en producci贸n en otros sistemas como Windows, MacOS.
Soluci贸n a los retos, ya que Platzi es una plataforma de ense帽anza y para los retos debe ser interactiva con el profesor.

Recomendaci贸n para el profesor:
Hacer un curso de docencia, ya que conoce bien la herramienta pero le falta mucho saber trasmitir el conocimiento.

Gracias.

Considero que este curso pese a ser largo, queda 鈥渃orto鈥 a nivel de explicaci贸n. Pues muchas cosas se explicaron por encima y dando como premisa 鈥渓eamos la documentaci贸n鈥 que claro, no est谩 mal, pero si hubiera querido pagar para que me ense帽en a leer una documentaci贸n, no estar铆a aqu铆.

Particularmente me queda en duda la interacci贸n entre tablas de base de datos, eso de dar follow, me gusta a una foto, comentarla, nada de eso queda explicado de como el ORM nos ayudar铆a.

Django versi贸n 2.0 para el curso y vamos por la 3.2 deber铆an actualizarlo.

Hiso falta el poder hacer unittest para automatizar pruebas de calidad 馃槮
Espero que el siguiente curso de 鈥淒jango Avanzado鈥 sea m谩s completo.
Gracias profesor Pablo Trinidad.

me encantar铆a que se abordar谩 aunque sea un poco de arquitectura de software (un poco una visi贸n m谩s general con un esquema quiz谩s de como se jerarquiz贸 el proyecto鈥 al principio del curso hubiese sido de mucha utilidad)

Tambi茅n ser铆a genial profundizar y grabar clases de deployment y recomendaciones de cursos que complementan bien este (ya sea del 谩mbito de devops o de base de datos por ejemplo)

Por lo dem谩s muy buen curso, es muy motivante aprender cosas nuevas