djangorest

Http Delete request to django returns a 301(Moved permenantly)


When I do a Http DELETE request to a django app. it directly returns a 301(Moved permanantly) response and redirects me to GET request of same url. I am guessing that Http PUT request would return 301 just like DELETE request. Is there any way to process DELETE request with django?


Solution

  • The redirect is caused by the APPEND_SLASH setting:

    APPEND_SLASH

    Default: True

    When set to True, if the request URL does not match any of the patterns in the URLconf and it doesn't end in a slash, an HTTP redirect is issued to the same URL with a slash appended. Note that the redirect may cause any data submitted in a POST request to be lost.

    Make sure your server and client are consistent with trailing slashes.

    If your project does not need the trailing slashes at all (i.e., it is an api without trailing slashes) you can disable it. Otherwise, make sure your urlconf accept paths without a trailing slash.