Как определить, что IP-адрес с Джанго проверяет клиента?

Я проверяю API с испытательным клиентом Джанго. API использует geo, блокирующий так в моем тесте, я должен определить IP-адрес, чтобы удостовериться, что это работает правильно. Как я могу сделать это?

Я обращаюсь с просьбой в своем тесте как это:

from django.test.client import Client as HttpClient
.
.
.
client = HttpClient()
response = client.get(uri + query_string)
10
nl ja de

4 ответы

Client.get () метод имеет , дополнительный параметр аргументов ключевого слова, который может использоваться, чтобы определить заголовки.

c.get(/my-url/, REMOTE_ADDR="127.0.0.1") 
12
добавлено

Передайте REMOTE_ADDR в конструкторе.

client = HttpClient(REMOTE_ADDR='127.0.0.1')

или

client.get('/path/', {'param':'foo'}, **{'HTTP_USER_AGENT':'firefox-22', 'REMOTE_ADDR':'127.0.0.1'})
5
добавлено

Можно также установить его для всех будущих запросов:

client.defaults['REMOTE_ADDR'] = '1.2.3.4'

Также с подклассификацией:

class DecoratedApiClient(Client):
    def set_ip_addr(self, ip_addr):
        self.defaults['REMOTE_ADDR'] = ip_addr

client = DecoratedApiClient()
client.set_ip_addr('1.2.3.4')
1
добавлено
Это не работает на меня
добавлено автор surfer190, источник
Это не работает на меня
добавлено автор surfer190, источник

Как простой как это:

client_address = request.META.get('HTTP_X_FORWARDED_FOR') or request.META.get('REMOTE_ADDR')
1
добавлено
Django
Django
1 931 участник(ов)

Полезная информация и правила: https://github.com/django-ru/faq Вакансии и резюме: @django_jobs Пофлудить идём сюда: @django_flood Статистика чата: combot.org/chat/-1001063854692

django_jobs
django_jobs
916 участник(ов)

Поиск и предложения работы (Django) Правила: https://t.me/django_jobs/4 Вакансии с тегом #job улетают в канал @django_jobs_board Вопросы к @amureki Основной чат @pydjango

Django
Django
733 участник(ов)

Веб-фреймворк для перфекционистов с дедлайнами. Наша группа на vk: https://vk.com/django_framework В Discord: https://discord.me/django_framework по всем вопросам @MechanisM

django flood
django flood
71 участник(ов)

Флудилка джангистов Пока без правил