J'utilise memcached dans Django pour mettre en cache le site entier.django cache.clear() fin de session (déconnexion)
https://docs.djangoproject.com/en/1.11/topics/cache/#the-per-site-cache
J'ai ajouté un code dans une méthode de gestionnaire de signal post-enregistrement pour effacer le cache lorsque certains objets sont créés ou mis à jour dans le modèle.
from proximity.models import Advert
# Cache
from django.core.cache import cache
@receiver(post_save, sender=Advert)
def save_advert(sender, instance, **kwargs):
# Clear cache
cache.clear()
Malheureusement, après la création d'un nouvel objet, l'utilisateur est déconnecté.
Je pense que la raison peut être que je mets en cache des sessions.
# Cache config
CACHE_MIDDLEWARE_SECONDS = 31449600 #(approximately 1 year, in seconds)
CACHE_MIDDLEWARE_KEY_PREFIX = COREAPP
CACHES = {
"default": {
"BACKEND": "django.core.cache.backends.memcached.MemcachedCache",
"LOCATION": "127.0.0.1:11211",
}
}
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
Devrais-je utiliser le cache par vue peut-être?
On ne sait pas ce que « cache site entier » est. –
J'ai mis en cache le site entier comme décrit dans django docs, tapant les requêtes au niveau du middleware, en utilisant 'django.middleware.cache.UpdateCacheMiddleware' et 'django.middleware.cache.FetchFromCacheMiddleware'. J'ai ajouté un lien vers les documents. –
effacer le cache effacera toutes les sessions enregistrées. Vous devriez soit utiliser un backend de session différent ou changer la façon dont vous cachez. Avez-vous vraiment besoin de mettre en cache chaque requête? –