asumo lo que estás preguntando es si se puede tener un método como este:
def restaction(request, id):
if request.method == "PUT":
someparam = request.PUT["somekey"]
La respuesta es no, no se puede. Django no construye dichos diccionarios para solicitudes PUT, OPTIONS y DELETE, explicando el razonamiento here.
Para resumirlo, el concepto de REST es que los datos que intercambia pueden ser mucho más complicados que un simple mapa de claves de valores. Por ejemplo, PONER una imagen, o usar json. Un marco no puede conocer las muchas formas en que podría desear enviar datos, por lo que hace lo obvio: dejarte manejar ese bit. Vea también la respuesta al this question donde se da la misma respuesta.
Ahora, ¿dónde encuentras los datos? Bueno, según el docs, django 1.2 presenta request.raw_post_data
. Como aviso previo, it looks like django 1.3 will supportrequest.read()
es decir, semántica similar a un archivo.
A partir de Django 1.4, '' request.raw_post_data'' ha cambiado de nombre '' petición.body'', y '' raw_post_data'' se eliminó en Django 1.6. – user85461
En realidad, puede hacer que Django maneje las solicitudes PUT y DELETE como desee. Aquí puede encontrar un [enfoque posible] (https://baxeico.wordpress.com/2014/06/25/put-and-delete-http-requests-with-django-and-jquery/). – baxeico