Write middleware that does this in __init__
and afterwards raise django.core.exceptions.MiddlewareNotUsed
from the __init__
, django will remove it for all requests :). __init__
is called at startup by the way, not at the first request, so it won’t block your first user.
There is talk about adding a startup signal, but that won’t be available soon (a major problem for example is when this signal should be sent)
Related Ticket: https://code.djangoproject.com/ticket/13024
Update: Django 1.7 includes support for this. (Documentation, as linked by the ticket)