Это очень похоже на этот вопрос SO в промежуточном программном обеспечении и обмене представлениями
Мы хотели бы, чтобы наши шаблоны имели стандартный набор переменных контекста. Таким образом, процессор контекста кажется подходящим, однако не похоже, что процессор контекста осведомлен о представлениях. Раньше нам приходилось проверять стек вызовов, чтобы получить контекстную информацию о том, какое представление что делает.
Здесь мы увидели поток промежуточного программного обеспечения, а также сигнатуру process_view()
для промежуточного программного обеспечения, которая дает нам дескриптор представления.
Это казалось более подходящим для наших нужд, но не позволяло нам изменять переменную контекста, как и другие методы промежуточного программного обеспечения.
Таким образом, наша первоначальная идея заключалась в том, чтобы изменить объект запроса со всей глобальной и контекстуальной информацией, необходимой для наших шаблонов, и заставить шаблоны вызывать из {{request.something}}
для получения конкретной информации, которая нам нужна, например {{request.viewname}}
.
Итак, наши вопросы:
- Является ли изменение/установка значений в объекте запроса приемлемым для отправки контекстной/глобальной информации о приложении в ваши шаблоны? Или стандартная практика всегда помещать это в контекст?
- Существуют ли способы/трюки, чтобы заставить контекстные процессоры знать, что они не включают его явную передачу или выполнение некоторой самоанализа стека?
- Есть ли у
middleware.process_response
возможность изменять контекст или он неизменен?