Согласно документации request.META
- это «стандартный словарь Python, содержащий все доступные заголовки HTTP». Если вы хотите получить все заголовки, вы можете просто перебрать словарь.
Какая часть вашего кода для этого зависит от ваших конкретных требований. Любое место, которое имеет доступ к request
, должно это сделать.
Обновление
Мне нужен доступ к нему в классе Middleware, но когда я перебираю его, я получаю много значений, кроме заголовков HTTP.
Из документации:
За исключением CONTENT_LENGTH
и CONTENT_TYPE
, как указано выше, любые заголовки HTTP
в запросе преобразуются в ключи META
путем преобразования всех символов в верхний регистр, замены любых дефисов подчеркиванием и добавление префикса HTTP_
к имени .
(выделение добавлено)
Чтобы получить только заголовки HTTP
, просто отфильтруйте по ключам с префиксом HTTP_
.
Обновление 2
Не могли бы вы показать мне, как я могу построить словарь заголовков, отфильтровывая все ключи из переменной request.META, которые начинаются с HTTP_ и удаляют ведущую часть HTTP_.
Конечно. Вот один из способов сделать это.
import re
regex = re.compile('^HTTP_')
dict((regex.sub('', header), value) for (header, value)
in request.META.items() if header.startswith('HTTP_'))