0

이 글은 제가 작성한 간단한 견해입니다. 내 urls.pydjango의 클래스 기반 뷰가있는 403

class PostTestView(View): 
    def post(self, request, *args, **kwargs): 
     print request.POST 
     return HttpResponse("Hello there") 

위의 볼이 라인이 있습니다

url(r'^test/create$',PostTestView.as_view(), name='app.views.create_test') 

을하지만 이것은 분명히 내 방법 post가 아닌 것을 의미 http://127.0.0.1:8000/app/test/create

을 칠 때 나는 405 Http error를 얻을 수 정의 된 메소드 목록. 그러나 나는 위와 같이 그것을 내 견해로 정의했다. 무엇이 잘못되었을 수 있습니까? 나는 단서이다

답변

5

get 메서드를 정의 해보십시오.

은 "포스트"방법은 일반적 형태로 사용하지만, 그냥 사용하는 방법 인 URL로 브라우저를 가리킬 때 '

+0

사실 오며'Post '를 오버라이드 (override) 피하려고 "GET"하고 get' 직접하지 않는 한 니가하는 일을 정확히 알지. 대신, 일반적인 CBV를 시작점으로 사용하고, 사용자가보기로 수행하려는 것을 기반으로 시작점을 선택하십시오. –

+1

이것은 클래스 기반보기 (CBV)입니다. django 문서를 살펴보면 https://docs.djangoproject.com/en/dev/topics/class-based-views/intro/ override get 및 post 메소드가 문서화 된 방법입니다. 클래스 기반 제네릭 뷰를 참조하고 있다고 생각합니다. 가능한 경우 클래스 기반 제네릭 뷰를 사용하는 것이 좋습니다. – esauro

+0

당신이 맞습니다, 나는 일반 CBV에 대해 이야기하고있었습니다. 그러나 함수 기반의 뷰와는 달리, 좀 더 깊이 파고 들기 전에 적절한 일반 CBV를 찾는 것이 좋습니다. 거의 확실하므로 찾아야합니다. 그래서 나는 다른 대답을 쓰는 대신에 당신의 대답에 대해 논평을 한 것입니다. –

관련 문제