首页 > 解决方案 > Django:DeleteView + HttpResponseNotAllowed

问题描述

我找到了这个 DeleteView。谁能告诉我是干什么return HttpResponseNotAllowed(['POST'])用的?我也应该将它添加到我自己的 DeleteView 中吗?

class DiscountDelete(AdminPermissionRequiredMixin, DeleteView):
    model = Discount

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

标签: pythondjango

解决方案


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

class DiscountDelete(AdminPermissionRequiredMixin, DeleteView):
    model = Discount
    http_method_names = ['post']

然后,如果该视图收到get请求,它将发回您正在寻找的 405。

这方面的文档在这里;https://docs.djangoproject.com/en/2.1/ref/class-based-views/base/#django.views.generic.base.View.http_method_names


推荐阅读