Mam następujący kod widokiem DRF:Django Reszta ramowa: pusty request.data
from rest_framework import viewsets
class MyViewSet(viewsets.ViewSet):
def update(self, request, pk = None):
print pk
print request.data
Wzywam URL poprzez Pythona wniosków w następujący sposób:
import requests
payload = {"foo":"bar"}
headers = {'Content-type': 'application/json'}
r = requests.put("https://.../myPk", data= payload, headers=headers)
, ale gdy żądanie zostanie odebrane z serwera, request.data jest pusty. Tutaj jest wyjście:
myPk
<QueryDict: {}>
Jak mogę rozwiązać ten problem?
Spróbuj użyć requests.post – Mikeec3
Mikeec3 doc z ram prac spoczynku mówi: _request.data zwraca przeanalizowaną zawartość treści żądania. Jest to podobne do standardowych atrybutów request.POST i request.FILES z wyjątkiem: - Obejmuje całą przeanalizowaną treść, w tym dane wejściowe plików i plików. ** - Obsługuje przetwarzanie zawartości metod HTTP innych niż POST, co oznacza, że można uzyskać dostęp do zawartości żądań PUT i PATCH. ** - Obsługuje elastyczne przetwarzanie żądań REST, a nie tylko wspiera dane formularzy. Na przykład możesz obsłużyć przychodzące dane JSON w taki sam sposób, w jaki przetwarzasz przychodzące dane formularzy._ – floatingpurr