API modificacion de usuario

This commit is contained in:
Daniel Cortes
2020-06-28 16:23:00 -04:00
parent a01d124324
commit 5183d5a65d
8 changed files with 205 additions and 86 deletions

View File

@@ -1,33 +0,0 @@
class PUTParsingMiddleware:
""" Fuerza a django a parsear el body de una request con método PUT
Django no parsea este tipo de request, dejando todo en el body, esto es por varias razones
aparentemente validas explicadas aquí
"https://groups.google.com/forum/#!msg/django-developers/dxI4qVzrBY4/m_9IiNk_p7UJ"
asi que no hay nada que hacerle, sin embargo, para el caso de uso de esta
aplicación, se puede asumir que sera seguro y funcionara correctamente.
Este código lo saque el blog post "https://thihara.github.io/Django-Req-Parsing/"
"""
def __init__(self, func):
self.func = func
def __call__(self, request, *args, **kwargs):
if request.method == 'PUT' and request.content_type == 'application/x-www-form-urlencoded':
if hasattr(request, '_post'):
del request._post
del request._files
try:
request.method = "POST"
request._load_post_and_files()
request.method = "PUT"
except AttributeError:
request.META['REQUEST_METHOD'] = 'POST'
request._load_post_and_files()
request.META['REQUEST_METHOD'] = 'PUT'
request.PUT = request.POST
return self.func(request, *args, **kwargs)