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_CLASSESliste.
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.