나는 다음과 같은 견해를 가지고 :장고 나머지 프레임 워크는 원시 JSON로 전달 된 데이터를 역 직렬화하지 않습니다
class Authenticate(generics.CreateAPIView):
serializer_class = AuthSerializer
def create(self, request):
serializer = AuthSerializer(request.POST)
# Do work here
데이터가 원시 JSON으로 전달되는 경우 데이터가 그러나 형태로 전달되는 경우이 잘 작동 serializer는 None으로 설정된 모든 필드로 인스턴스화됩니다. 문서에는 원시 JSON 인수를 처리하는 데 특별한 것이 있어야한다는 언급이 있습니다.
도움을 주시면 감사하겠습니다.
UPDATE
원시 JSON을 통과 할 때 예상하지만 더 나은 방법이있을 생각으로 내가 검색 가능한 API를 작동하게하기 위해 주변의 다음과 같은 일이.
def parse_data(request):
# If this key exists, it means that a raw JSON was passed via the Browsable API
if '_content' in request.POST:
stream = StringIO(request.POST['_content'])
return JSONParser().parse(stream)
return request.POST
class Authenticate(generics.CreateAPIView):
serializer_class = AuthSerializer
def create(self, request):
serializer = AuthSerializer(parse_data(request))
# Do work here
무엇이 오류입니까? 아니면 실제로 오류가 발생 했습니까? –
시리얼 화는 Nones로 초기화됩니다. 문제는 Browsable API가 '_content'키 안에 JSON을 보내는 것입니다. 나는이 사건이 언제인지를 확인하고 dson에 json을 파싱하는 기능을 만들었지 만 더 나은 방법이 있어야한다고 믿는다. – Raphael