Ответить на почтовый запрос третьей стороне, токен csrf
У меня есть два сервера на Django, у каждого сервера есть свой клиент. Мне нужно отправить запрос с одного сервера на второй. Я делаю это следующим образом:
def post(self, request, serial_number):
if settings.DEBUG:
setattr(request, '_dont_enforce_csrf_checks', True)
charger_id = Charger.objects.get(serial_number=serial_number)
form = WiFiConfigForm(request.POST)
ip = charger_id.public_ip_address
if form.is_valid():
data = {"wifi_ssid": request.POST.get('wifi_ssid'),
"wifi_pass": request.POST.get('wifi_pass')}
url = "http://127.0.0.1" + ":" + PORT + "/wifi_config/" + str(serial_number) + "/"
client = requests.session()
client.get(url)
csrf_token = client.cookies['csrftoken']
payload = {
'csrfmiddlewaretoken': csrf_token
}
# response = requests.post(url, data=payload) # I tried this variant as well
response = client.post(url, data=payload)
print("response:", response)
else:
return Response("Form is not valid", status=status.HTTP_200_OK)
return Response({"response": "response",
"ip": ip,
"serial_number": serial_number}, status=status.HTTP_200_OK)
Проблема в токенах csrf, я не знаю, как с ними работать. Ошибка KeyError: "name='csrftoken', domain=None, path=None"