2014-11-03 9 views
8

로컬 시스템 (노드 & 장고)에서 두 개의 dev 서버로 작업하고 있습니다.Django/DRF - 405 메서드가 DELETE 작업에서 허용되지 않습니다.

나는 모든 기원을 다음 설정 (DEV)에 & 방법을 허용하는 프로젝트에 django-cors-headers를 추가했습니다 : 삭제하려고 할 때

CORS_ORIGIN_ALLOW_ALL = 'ALL' 
CORS_ALLOW_METHODS = (
     'GET', 
     'POST', 
     'PUT', 
     'PATCH', 
     'DELETE', 
     'OPTIONS' 
    ) 

내가 405를 얻고있다. 는 응답 보면 DELETE & PATCH/PUT가 허용 된 방법 목록에 존재하지 않는 것을

HTTP/1.0 405 METHOD NOT ALLOWED 
Date: Mon, 03 Nov 2014 10:04:43 GMT 
Server: WSGIServer/0.1 Python/2.7.5 
Vary: Cookie 
X-Frame-Options: SAMEORIGIN 
Content-Type: application/json 
Access-Control-Allow-Origin: * 
Allow: GET, POST, HEAD, OPTIONS 

공지 사항 헤더.

구성에 누락 된 항목이 있습니까?

+0

보기에서 이러한 방법을 구현합니까? ModelViewSet을 사용하고 있습니까? 믹싱, ApiView? – argaen

+0

오래된'viewsets.ModelViewSet' - 테스트가 완벽하게 실행됩니다. – haki

+0

보기에서 허용되는 방법은 무엇입니까? docs 때문에'CORS_ALLOW_METHODS'는 전역 적으로 사용할 수 있지만 자동으로보기 위해 추가하지 않는 메소드 만 정의합니다. CORS_ORIGIN_ALLOW_ALL은 문자열이 아닌 부울이어야합니다. – coldmind

답변

22

응답은 뷰셋의 목록보기 (/api/resource/)의 그것과매우 비슷합니다. 목록보기는 GET, 모든 개체 나열 및 POST 만 지원하여 새 개체를 만듭니다.

DELETE세부보기 (/api/resource/1/)에만 요청할 수 있습니다. 이것은 Django REST Framework가 삭제하고자하는 객체를 알아야하기 때문에이 정보는 목록보기에서만 검색 할 수 없기 때문입니다.

+1

감사합니다. . 나는 URL에서 pk를 제외하고 요구가 세부 사항보다는 명부에 밖으로 나갔다. – haki

+0

DRF 라우터 모듈을 사용하는 경우. 'user-detail'은'user-list'가 아니라 PUT 연산을 지원합니다. http://www.django-rest-framework.org/api-guide/routers/ –

관련 문제