0

所以這是我寫的一個簡單的視圖。403與django的基於類的視圖

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

urls.py有這一行的上述觀點:

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

但我得到一個405 Http error當我嘗試打http://127.0.0.1:8000/app/test/create

這顯然意味着,我的方法post不在定義的方法列表。但是我認爲如上所述。 這裏可能有什麼錯誤?我無能爲力

回答

5

嘗試定義get方法。

「後」方法在形式常用的,但是當你剛剛瀏覽器指向的URL中使用的方法是「取」

+0

事實上,儘量避免重寫'POST'和'GET'直接,除非你確切知道你在做什麼。相反,使用通用的CBV作爲起點,根據你想要對你的視圖做什麼來選擇一個。 –

+1

這是一個基於類的視圖(CBV)。如果你看看django文檔https://docs.djangoproject.com/en/dev/topics/class-based-views/intro/覆蓋獲取和發佈方法是記錄的方式來做事情。我想你是參考基於類的通用視圖,這是一個很好的觀點,如果可以的話,使用基於類的通用視圖。 – esauro

+0

你是對的,我在談論仿製CBV。然而,與基於功能的視圖不同,強烈建議您在深入挖掘之前嘗試找到合適的通用CBV,因爲您幾乎肯定會找到一個。這就是爲什麼我對你的答案發表評論(這是不正確的),而不是寫另一個答案。 –