1
If you want to simply filter requests by context (for example by the URL) or reject all of them, then you can write your own middleware with a process_request
method, where you can check for condition(s) and return either None
(to continue processing) or HttpResponse
with redirect/404/403 (to block processing).
Now, if you want to send signals or perform any other processing, you can do it in another middleware and simply set a proper order in MIDDLEWARE_CLASSES
(the “blocking” middleware should be the last).
Source:stackexchange.com