When using the low-level cache and memcache as the backend, you're likely to run into this stack trace:
... File "/pegasus/code/current/django/core/cache/backends/memcached.py" in set 48. self._cache.set(key, value, timeout or self.default_timeout) File "/usr/lib/python2.5/site-packages/memcache.py" in set 305. return self._set("set", key, val, time) File "/usr/lib/python2.5/site-packages/memcache.py" in _set 328. fullcmd = "%s %s %d %d %d\r\n%s" % (cmd, key, flags, time, len(val), val) UnicodeDecodeError at / 'ascii' codec can't decode byte 0x80 in position 0: ordinal not in range(128) What's going on here is that the memcache.py library does this with the passed parameters: fullcmd = "%s %s %d %d %d\r\n%s" % (cmd, key, flags, time, len(val), val) Since "key" is often a unicode string, it infects, as it were, the rest of the line, forcing "val" to be encoded, then decoded. It may be that only the memcache backend has this problem, but the general solution I'd suggest is to use smart_str on the key given to each low-level cache's backend set method. Works-for-me. It may also make sense to run on the value, but I imagine that has a significant overhead, and I haven't had a problem with it yet.... --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to django-developers@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-developers?hl=en -~----------~----~----~----~------~----~------~--~---