5๐
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/
3๐
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.
- How do I handle file upload via PUT request in Django?
- Use of unicode in Django
- How to unit test methods inside django's class based views?
- How can I easily convert a Django app from mySQL to PostgreSQL?
-1๐
You can not intercept redirects in DRF browsable api because it is ajax and called via javascript. Also the toolbar is not shown because of ajax call. As workaround you could temporary comment lines in debug_toolbar.middleware.DebugToolbarMiddleware#process_request
that disables toolbar in ajax call:
...
# Don't render the toolbar during AJAX requests.
# if request.is_ajax():
# return
...
Redirects still would not work, but toolbar would be visible.
- How to get the submitted value of a form in a Django class-based view?
- Using a Django variable in a CSS file
- How to specify uniqueness for a tuple of field in a Django model
- AuthAlreadyAssociated Exception in Django Social Auth