Python Django:DeleteView+;HttpResponseNotAllowed
我发现了这个观点。任何人都可以告诉我返回HttpResponseNotAllowed(['POST'])的目的是什么?我是否也应该将其添加到自己的DeleteView中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
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代表什么吗?@JonProgrammeru'
是一个unicode字符串。如果您使用的是Python2,并且有来自未来的导入unicode文本的,然后打印一个字符串,您可能会看到这一点。