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,因为您几乎肯定会找到一个。这就是为什么我对你的答案发表评论(这是不正确的),而不是写另一个答案。 –