Obteniendo nuestro Gravatar utilizando Django

imagen / Gravatar
  
24 de Septiembre de 2015   2  

Un Gravatar es un Avatar Reconocido Globalmente (Globally Recognized Avatar) y que actualmente es utilizado dentro de muchas plataformas web, a fin de ahorrarle algunos pasos a los usuarios en su tarea de registro en diferentes sitios web.

Este esquema de imágenes ha sido adoptado en Pythonízame y el día de hoy te mostramos un script para que puedas implementarlo en tus proyectos con Django.

Paso 1. Obtenemos url gravatar

Gravatar nos muestra en su sitio web cómo obtener la url del perfil de un usuario a partir de su email. Esto lo hemos traducido a Python y hemos creado una función llamada get_url_gravatar:

Esto lo agregaremos en cualquier parte de nuestro proyecto Django para llamarlo posteriormente en la vista que requiera de la función.

Paso 2. Almacenamos la imagen en un campo ImageField

Ahora lo que necesitamos es llamar esta función en la vista que se encarga de registrar nuevos usuarios en el sistema. En este ejemplo vamos a suponer que tenemos el modelo User sin ninguna modificación y que tenemos un modelo llamado "UserProfile" el cual tiene un campo ForeignKey hacia el modelo User y un campo llamado "image" utilizando un campo ImageField. El código sería el siguiente:

 

from url_gravatar import get_url_gravatar

# 1. Creamos al nuevo usuario.
new_user = User.objects.create_user(username=username, email=email, password=password)
# 2. Instanciamos un nuevo objeto de perfil.
profile = UserProfile()
profile.user = new_user
# 3. Generamos la imagen del gravatar
url_gravatar = get_url_gravatar(email)
image_stream = urlopen(url_gravatar)
# 4. Almacenamos la imagen y la vinculamos al perfil del usuario.
profile.image.save("img_{0}.jpg".format(profile.user.id), ContentFile(image_stream.read()))
profile.save()

¿Sencillo verdad? Espero les haya servido y no olviden dejar sus comentarios y recomendaciones.



Alex Dzul

FullStack Python / Django Developer. #jslove

Etiquetas