vistas registro eliminar clases basadas django rest

registro - La solicitud de eliminación de HTTP a django devuelve un 301(se movió de forma permanente)



eliminar registro django (2)

La redirección es causada por la configuración de APPEND_SLASH :

APPEND_SLASH

Predeterminado: Verdadero

Cuando se establece en Verdadero, si la URL de la solicitud no coincide con ninguno de los patrones en el URLconf y no termina en una barra, se envía un redireccionamiento HTTP a la misma URL con una barra anexada. Tenga en cuenta que la redirección puede hacer que se pierdan todos los datos enviados en una solicitud POST.

Asegúrese de que su servidor y cliente sean consistentes con las barras inclinadas.

Si su proyecto no necesita las barras al final (es decir, es una API sin barras al final), puede deshabilitarlo. De lo contrario, asegúrese de que su urlconf acepte rutas sin una barra diagonal.

Cuando hago una solicitud Http DELETE a una aplicación django. directamente devuelve una respuesta 301 (Movida permanentemente) y me redirige a la solicitud GET de la misma url. Supongo que la solicitud Http PUT devolvería 301 al igual que la solicitud DELETE. ¿Hay alguna manera de procesar la solicitud DELETE con django?


Me encontré con este problema mientras utilizaba AngularJs y Django REST.

Django Rest estaba redirigiendo al cliente para solicitar la URL con una barra diagonal final mientras que el $resource AngularJS garantiza que no haya un guión final en sus URL. Esto se describe en este issue

En el mismo enlace, verá sugerencias para utilizar el servicio $http más flexible en lugar de $resource . Pero ... realmente quería usar $resource (menos código).

Así que la solución fue trivial, ya que el equipo de Django REST ha explicado esto recently :

router = DefaultRouter(trailing_slash=False)

http://django-rest-framework.org/api-guide/routers.html

(He agregado a esto a mi blog ya que me gustaría mantener un registro de algunas trampas usando AngularJS y Django REST)