Provide Gravatar default url in settings.AVATAR_GRAVATAR_DEFAULT - will be used by Gravatar if the user has no avatar for that email address.

This commit is contained in:
Ross Poulton 2010-01-30 06:03:40 +08:00 committed by Eric Florenzano
parent ed21e5a907
commit 073e9a9c10
2 changed files with 8 additions and 4 deletions

View file

@ -11,6 +11,7 @@ AUTO_GENERATE_AVATAR_SIZES = getattr(settings, 'AUTO_GENERATE_AVATAR_SIZES', (80
AVATAR_RESIZE_METHOD = getattr(settings, 'AVATAR_RESIZE_METHOD', Image.ANTIALIAS)
AVATAR_STORAGE_DIR = getattr(settings, 'AVATAR_STORAGE_DIR', 'avatars')
AVATAR_GRAVATAR_BACKUP = getattr(settings, 'AVATAR_GRAVATAR_BACKUP', True)
AVATAR_GRAVATAR_DEFAULT = getattr(settings, 'AVATAR_GRAVATAR_DEFAULT', None)
AVATAR_DEFAULT_URL = getattr(settings, 'AVATAR_DEFAULT_URL',
settings.MEDIA_URL + os.path.join(os.path.dirname(__file__), 'default.jpg'))
@ -23,4 +24,4 @@ def create_default_thumbnails(instance=None, created=False, **kwargs):
if created:
for size in AUTO_GENERATE_AVATAR_SIZES:
instance.create_thumbnail(size)
signals.post_save.connect(create_default_thumbnails, sender=Avatar)
signals.post_save.connect(create_default_thumbnails, sender=Avatar)

View file

@ -5,7 +5,7 @@ from django.contrib.auth.models import User
from django.utils.translation import ugettext as _
from django.utils.hashcompat import md5_constructor
from avatar import AVATAR_DEFAULT_URL, AVATAR_GRAVATAR_BACKUP
from avatar import AVATAR_DEFAULT_URL, AVATAR_GRAVATAR_BACKUP, AVATAR_GRAVATAR_DEFAULT
register = template.Library()
@ -29,9 +29,12 @@ def avatar_url(user, size=80):
return avatar.avatar_url(size)
else:
if AVATAR_GRAVATAR_BACKUP:
params = {'s': str(size)}
if AVATAR_GRAVATAR_DEFAULT:
params['d'] = AVATAR_GRAVATAR_DEFAULT
return "http://www.gravatar.com/avatar/%s/?%s" % (
md5_constructor(user.email).hexdigest(),
urllib.urlencode({'s': str(size)}),)
urllib.urlencode(params))
else:
return AVATAR_DEFAULT_URL
register.simple_tag(avatar_url)
@ -57,4 +60,4 @@ def render_avatar(avatar, size=80):
avatar.create_thumbnail(size)
return """<img src="%s" alt="%s" width="%s" height="%s" />""" % (
avatar.avatar_url(size), str(avatar), size, size)
register.simple_tag(render_avatar)
register.simple_tag(render_avatar)