Промежуточные программы выполняются перед просмотром и при возврате ответа.
Контекстный процессор выполняется при рендеринге шаблона, обычно в конце представления.
Итак:
(запрос) -> промежуточное ПО, сверху вниз -> вид -> context_processor -> (ответ) -> промежуточное ПО, снизу вверх