What is submitted in the POST data portion of the request is not a dict, nor is it JSON. What you are looking at as request.POST
is the result of Django reformatting the submitted data and creating a Dict-like object from what was submitted. They’re two different things.
By definition and documentation, request.POST
creates a QueryDict
from form data. All other uses require the use of request.body
.
There are constraints and limitations of what can be submitted from both formats, and there’s not a strict 1-1 correspondence between the two.
For more information about what is actually submitted, see:
- Request and response objects | Django documentation | Django
- POST - HTTP | MDN
and - RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1
I would find that surprising. But in the absence of any details, it’s all conjecture.