MemcachedKeyCharacterError: Control characters not allowed. Es scheint, dass es auftreten kann, wenn ein Objekt usw. als Schlüssel mit der Cache-Funktion von Django angegeben wird.
models.py
from django.db import models
class TestModel(models.Model):
test = models.CharField(verbose_name=u'Prüfung')
views.py
from django.core.cache import cache
def test_view(request):
obj = TestModel.objects.get(pk=1)
objs = cache.get(obj, None)
Wenn Sie die obige Ansicht aufrufen, erhalten Sie möglicherweise einen "MemcachedKeyCharacterError: Steuerzeichen nicht zulässig" Fehler bei "cache.get (obj, None)".
models.py
from django.db import models
class TestModel(models.Model):
test = models.CharField(verbose_name=u'Prüfung')
def __unicode__(self):
return u"%s:%s" % (self.__class__.__name__, self.id)
Sie können den Fehler vermeiden, indem Sie eine Zeichenfolge mit der Methode definieren, die bei der Ausgabe des Objekts wie oben beschrieben aufgerufen wird.
Cache key contains characters that will cause errors if used with memcached
views.py
from django.core.cache import cache
def test_view(request):
obj = TestModel.objects.get(pk=1)
objs = cache.get("aaaa bbbb", None)
Wie oben erwähnt, sind Schlüssel einschließlich Leerzeichen ebenfalls NG.
Recommended Posts