Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

rest

django

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?

like image 960
yilmazhuseyin Avatar asked Feb 03 '11 21:02

yilmazhuseyin


1 Answers

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.

like image 154
Udi Avatar answered Sep 20 '22 07:09

Udi