Agregado metodo para cambiar las redes sociales
This commit is contained in:
33
utils/middleware.py
Normal file
33
utils/middleware.py
Normal file
@@ -0,0 +1,33 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user