J'écris une classe Django Middleware que je souhaite exécuter une seule fois au démarrage, pour initialiser un autre code arbritaire. J'ai suivi la très belle solution postée par sdolan ici , mais le message "Hello" est envoyé deux fois sur le terminal . Par exemple
from django.core.exceptions import MiddlewareNotUsed
from django.conf import settings
class StartupMiddleware(object):
def __init__(self):
print "Hello world"
raise MiddlewareNotUsed('Startup complete')
et dans mon fichier de paramètres Django, j'ai la classe incluse dans la MIDDLEWARE_CLASSES
liste.
Mais quand je lance Django en utilisant runserver et que je demande une page, j'arrive dans le terminal
Django version 1.3, using settings 'config.server'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Hello world
[22/Jul/2011 15:54:36] "GET / HTTP/1.1" 200 698
Hello world
[22/Jul/2011 15:54:36] "GET /static/css/base.css HTTP/1.1" 200 0
Des idées pourquoi "Hello world" est imprimé deux fois? Merci.