From 6512c38dcbf9bd36d608a5e2eb7ca1e3f641c407 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Mon, 11 Mar 2013 16:51:23 +0100 Subject: [PATCH] Convert the cache key into a smart str before calculating the md5 hash. --- avatar/util.py | 7 +++++-- setup.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/avatar/util.py b/avatar/util.py index ee231c5..d181085 100644 --- a/avatar/util.py +++ b/avatar/util.py @@ -1,6 +1,7 @@ from django.conf import settings from django.core.cache import cache from django.utils.hashcompat import md5_constructor +from django.utils.encoding import smart_str from django.template.defaultfilters import slugify from django.contrib.auth.models import User @@ -10,14 +11,16 @@ from avatar.settings import (AVATAR_DEFAULT_URL, AVATAR_CACHE_TIMEOUT, cached_funcs = set() + def get_cache_key(user_or_username, size, prefix): """ Returns a cache key consisten of a username and image size. """ if isinstance(user_or_username, User): user_or_username = user_or_username.username - key = '%s_%s_%s' % (prefix, user_or_username, size) - return '%s_%s' % (slugify(key)[:100], md5_constructor(key).hexdigest()) + key = u'%s_%s_%s' % (prefix, user_or_username, size) + return u'%s_%s' % (slugify(key)[:100], + md5_constructor(smart_str(key)).hexdigest()) def cache_result(func): diff --git a/setup.py b/setup.py index 0fe8ac8..df35977 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ from setuptools import setup, find_packages -version = '2.0a8' +version = '2.0a9' LONG_DESCRIPTION = """ Using django-avatar