[PYTHON] Erreur liée à memcached dans django

MemcachedKeyCharacterError: Control characters not allowed. Il semble que cela puisse se produire lorsqu'un objet, etc. est spécifié comme clé avec la fonction de cache de django.

models.py


from django.db import models

class TestModel(models.Model):
    test = models.CharField(verbose_name=u'tester')

views.py


from django.core.cache import cache

def test_view(request):
    obj = TestModel.objects.get(pk=1)
    objs = cache.get(obj, None)

Si vous appelez la vue ci-dessus, vous pouvez obtenir une erreur "MemcachedKeyCharacterError: caractères de contrôle non autorisés" à "cache.get (obj, None) ".

models.py


from django.db import models

class TestModel(models.Model):
    test = models.CharField(verbose_name=u'tester')

    def __unicode__(self):
        return u"%s:%s" % (self.__class__.__name__, self.id)

Vous pouvez éviter l'erreur en définissant une chaîne de caractères avec la méthode appelée lorsque l'objet est sorti comme décrit ci-dessus.

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)

Comme mentionné ci-dessus, les clés comprenant des espaces sont également NG.

Recommended Posts

Erreur liée à memcached dans django
Comment refléter CSS dans Django
Comment supprimer des sessions expirées dans Django
Comment faire des événements envoyés par le serveur dans Django
Modèle dans Django
Sites liés à Django
Formulaire à Django
Ajouter dynamiquement des champs aux objets Form avec Django
Comment implémenter la fonctionnalité de type helper Rails dans Django
Je veux corriger Datetime.now dans le test de Django
[Django] Comment résoudre les erreurs lors de l'installation de mysqlclient
Comment refléter ImageField dans Django + Docker (oreiller)
Comment gérer les erreurs d'exécution dans subprocess.call
Passer les informations de connexion à afficher dans Django
Comment créer une API Rest dans Django
Comment obtenir plusieurs objets de modèle au hasard dans Django
Définissez DateField du formulaire sur type = date dans Django
Comment utiliser le bootstrap dans la vue de classe générique Django
TemplateView les modèles que vous souhaitez apprendre en premier dans Django
Modifications du modèle dans Django
impossible d'importer django
Comment résoudre les erreurs de module SSL dans l'environnement Anaconda
Comment télécharger des fichiers dans la vue de classe générique Django
Comment utiliser Decorator dans Django et comment le créer
mettre à jour django version 1.11.1 vers 2.2
Comment référencer des fichiers statiques dans un projet Django
[Django] Pattern pour ajouter des enregistrements associés après avoir créé un enregistrement
Comment écrire une validation personnalisée dans Django REST Framework
Comment utiliser ORM / Query Builder Orator de type Laravel avec Django
Comment vérifier le comportement d'ORM avec un fichier avec django
Comment mettre à jour les informations utilisateur sur Django RemoteUserMiddleware login
Erreurs courantes dans django Partie 1 À propos de template.exceptions.TemplateDoesNotExist (Remarque)
J'ai fait une commande pour générer un commentaire pour une table dans Django
[Django] Comment donner des valeurs d'entrée à l'avance avec ModelForm
Comment générer une requête à l'aide de l'opérateur IN dans Django
Astuces utiles liées à la liste et aux instructions en Python
[Django] Je souhaite me connecter automatiquement après une nouvelle inscription
Je n'arrive pas à me connecter à la page d'administration avec Django 3
Pour les débutants, comment gérer les erreurs courantes dans les keras
Que faire lorsque "En-tête HTTP_HOST non valide" apparaît dans Django
Dans Django, comment abréger la longue chaîne de caractères affichée au milieu ...
Django a changé pour enregistrer beaucoup de données à la fois
Optimisation des performances dans Django 3.xx
PHP comme var_dump dans le template Django
Gérer les constantes dans les modèles Django
Covector pour penser en fonction
Implémenter la fonction de suivi dans Django
Pour vider stdout en Python
Renommer les colonnes de table dans Django3
Connectez-vous au site Web en Python
Sortie de la structure de table dans Django
Shell pour créer un projet django
Parler avec Python [synthèse vocale]
(Note) Django dans l'environnement Vagrant
Comment développer en Python
Passer du texte à Django genericview
Déployer le projet django sur heroku