Skip to content

Instantly share code, notes, and snippets.

@dryan
Created July 29, 2010 20:27
Show Gist options
  • Save dryan/499144 to your computer and use it in GitHub Desktop.
Save dryan/499144 to your computer and use it in GitHub Desktop.
Django templatetag for getting gravatars
from django import template
from django.conf import settings
import urllib, hashlib
register = template.Library()
class GravatarUrlNode(template.Node):
def __init__(self, email):
self.email = template.Variable(email)
def render(self, context):
try:
email = self.email.resolve(context)
except template.VariableDoesNotExist:
return ''
default = settings.MEDIA_URL + 'images/defaultavatar.gif'
size = 48
gravatar_url = "http://www.gravatar.com/avatar/" + hashlib.md5(email).hexdigest() + "?"
gravatar_url += urllib.urlencode({'default':default, 'size':str(size)})
return gravatar_url
@register.tag
def gravatar_url(parser, token):
try:
tag_name, email = token.split_contents()
except ValueError:
raise template.TemplateSyntaxError, "%r tag requires a single argument" % token.contents.split()[0]
return GravatarUrlNode(email)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment