6👍
For posterity (even though the question is rather old):
It seems like django/DRF treats multipart/form-data
and application/json
content type in a different enough way to cause issues.
So, even when using the same endpoint(viewset) and depending on whether the form is sent as multipart or app/json – request.data
will be a different object.
In one case it would be a ‘normal’ dict while in other it would be of QueryDict
type. So, in order to use the hacky _mutable
on/off an additional check similar to this is needed:
...
# one can also use:
# if 'multipart/form-data' in request.META.get('CONTENT_TYPE'):
# instead of the condition below
if isinstance(request.data, QueryDict):
auth_data = json.dumps(auth_data) # <----- QueryDict expects string values
request.POST._mutable = True # <----- mutable needs to be modified on POST and not on data
request.data.update(auth_data)
request.POST._mutable = False
...
1👍
I used (request.POST._mutable = True) and this way does not work for me.
then I copied request.POST in a new variable and I use the new variable in whole my code and this way work fine
- [Django]-Is there an easy way reverse a template render?
- [Django]-How frequently should Python decorators be used?
- [Django]-Django 1.4 – Keeping track of multiple queries and pagination
- [Django]-How does djangoproject.com do its deploy to prod? Should I package my django project to deploy it?
Source:stackexchange.com