Згідно з документацією 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_'))