Django Rest Framework debug post and put requests
If you need to intercept the request/response and apply your own processing then you can add your custom mixin as described in this answer.
But in the most trivial scenario, given that you do a test POST request (or PUT), for example, with python requests:
import requests
response = requests.post('http://localhost:8000/person', json={"name": "dinsdale"})
Then you can get the error message with
print(response.text)
In most cases the output will contain the failure reason that you were looking for, e.g. 'age' is required
.
You can also do the same thing with curl
from a terminal:
curl -vv --header "Content-Type: application/json" \
--request POST \
--data '{"name":"dinsdale"}' http://localhost:8000/person/
When debugging interactively on a local machine, I like to examine the request
data by breaking in the relevant put()
or post()
method in rest_framework.generics
.
For quick local debugging of POST
or PUT
validation errors (e.g. in case of http status 400 issues), I like to break at the end of Field.run_validators()
in rest_framework.fields
and examine the error messages there.