Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:DeleteView+;HttpResponseNotAllowed_Python_Django - Fatal编程技术网

Python Django:DeleteView+;HttpResponseNotAllowed

Python Django:DeleteView+;HttpResponseNotAllowed,python,django,Python,Django,我发现了这个观点。任何人都可以告诉我返回HttpResponseNotAllowed(['POST'])的目的是什么?我是否也应该将其添加到自己的DeleteView中 class DiscountDelete(AdminPermissionRequiredMixin, DeleteView): model = Discount def get(self, *args, **kwargs): return HttpResponseNotAllowed(['POS

我发现了这个观点。任何人都可以告诉我返回HttpResponseNotAllowed(['POST'])的目的是什么?我是否也应该将其添加到自己的DeleteView中

class DiscountDelete(AdminPermissionRequiredMixin, DeleteView):
    model = Discount

    def get(self, *args, **kwargs):
        return HttpResponseNotAllowed(['POST'])

使用Django的基于类的视图,您可以为此定义一个类变量

class DiscountDelete(AdminPermissionRequiredMixin, DeleteView):
    model = Discount
    http_method_names = ['post']
然后,如果该视图接收到
get
请求,它将发回您正在查找的405


这方面的文件在这里

使用通常的删除视图,当您执行GET请求时,您将获得一个确认页面。然后,当您提交带有POST请求的表单时,该对象将被删除

自定义的
get()
方法正在禁用get请求。可能不需要,因为删除请求是从不同的视图(例如列表视图)提交的


我们无法判断您是否应该将此功能添加到删除视图中。这取决于你。

啊,太好了。我在经典的CBV上发现了这样一种编写方式:
http\u方法\u名称=[u'get',u'post',u'put',u'patch',u'delete',u'head',u'options',u'trace']
你知道u代表什么吗?@JonProgrammer
u'
是一个unicode字符串。如果您使用的是Python2,并且有来自未来的导入unicode文本的
,然后打印一个字符串,您可能会看到这一点。