1) Если вы измените «настройки», это действительно будет глобальным даже для разных запросов. Другими словами, параллельные запросы будут вытеснять друг друга, если вам нужно, чтобы каждый запрос имел свое значение. Безопаснее модифицировать сам объект запроса, что и делает некоторое обычное промежуточное ПО Django (например, django.contrib.auth.middleware.AuthenticationMiddleware добавляет ссылку на «пользователя» в объекте запроса)
2) (РЕДАКТИРОВАТЬ 2) См. # 4, получение общего набора переменных в каждом шаблоне, вероятно, лучше подходит для процессора специального контекста
3) Я не знаком с CakePHP, но добавление промежуточного программного обеспечения process_request, безусловно, является хорошим способом Django для предварительной обработки каждого запроса.
4) Посмотрите документацию для шаблонных процессоров контекста . Если вы используете RequestContext, каждый шаблон будет иметь контекстную переменную под названием «request», которую вы можете поместить в свой шаблон. Вы также можете использовать обработчик контекста отладки и сделать что-то подобное, чтобы он выводил дамп только при настройках.DEBUG = True:
{% if debug %}
<!-- {{ request.REQUEST }} -->
{% endif %}
Это будет работать как для GET, так и для POST, но вы можете изменить соответствующим образом, если вам нужен только один или другой.
EDIT
Кроме того, я просто присмотрелась к вашим views.py. Не уверен, что я полностью понимаю, что вы пытаетесь сделать, просто возвращая переменную в ответе. Если у вас действительно есть этот вариант использования, вы, вероятно, также захотите установить mimetype так:
return HttpResponse (..., mimetype='text/plain')
Ясно, что вы не возвращаете HTML, XML или какой-либо другой тип структурированного контента.
РЕДАКТИРОВАТЬ 2
Только что увидел, что вопрос был обновлен новым подзапросом, перенумерованы ответы