Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.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 redirectView返回无_Python_Django_Django Class Based Views - Fatal编程技术网

Python Django redirectView返回无

Python Django redirectView返回无,python,django,django-class-based-views,Python,Django,Django Class Based Views,我试图在django中使用重定向视图,但我一直遇到以下错误: 视图gp_accountary.gp_taxes.views.TaxRateDeleteView未返回HttpResponse对象。它没有返回任何结果 我的代码基于 有人知道问题出在哪里吗 这是我的url文件(路径:get pay/gp\u accountary/gp\u taxes/url.py): 编辑您的视图 class TaxRateDeleteView(RedirectView): def dispatch(self

我试图在django中使用重定向视图,但我一直遇到以下错误:

视图gp_accountary.gp_taxes.views.TaxRateDeleteView未返回HttpResponse对象。它没有返回任何结果

我的代码基于

有人知道问题出在哪里吗

这是我的url文件(路径:
get pay/gp\u accountary/gp\u taxes/url.py
):

编辑您的视图

class TaxRateDeleteView(RedirectView):
    def dispatch(self, request, *args, **kwargs):
        TaxRate.objects.get(id=int(kwargs['pk'])).delete()
        return super(TaxRateDeleteView,self).dispatch(request, *args, **kwargs)
在视图的分派方法上调用super。

编辑视图

class TaxRateDeleteView(RedirectView):
    def dispatch(self, request, *args, **kwargs):
        TaxRate.objects.get(id=int(kwargs['pk'])).delete()
        return super(TaxRateDeleteView,self).dispatch(request, *args, **kwargs)

请按您视图的分派方法调用super。

@FazilZaid几乎正确,您需要返回他答案的最后一行。问题是,您的
dispatch
通常不会返回任何内容,它应该返回
HttpResponseRedirect
,因此要使其与
super
调用一起工作,您需要向视图提供
success\u url

class TaxRateDeleteView(RedirectView):
    success_url = # <- your url here

    def dispatch(self, request, *args, **kwargs):
        TaxRate.objects.get(id=int(kwargs['pk'])).delete()
        return super(TaxRateDeleteView,self).dispatch(request, *args, **kwargs)
class TaxRateDeleteView(重定向视图):

success_url=#@FazilZaid几乎正确,您需要返回他答案的最后一行。问题是,您的
dispatch
通常不会返回任何内容,它应该返回
HttpResponseRedirect
,因此要使其与
super
调用一起工作,您需要向视图提供
success\u url

class TaxRateDeleteView(RedirectView):
    success_url = # <- your url here

    def dispatch(self, request, *args, **kwargs):
        TaxRate.objects.get(id=int(kwargs['pk'])).delete()
        return super(TaxRateDeleteView,self).dispatch(request, *args, **kwargs)
class TaxRateDeleteView(重定向视图):

success_url=#您不应该覆盖分派方法

请尝试以下方法:

class TaxRateDeleteView(RedirectView):
    def get_redirect_url(self, *args, **kwargs):
        TaxRate.objects.get(id=int(kwargs['pk'])).delete()   
        return reverse('delete_rate')

您不应该重写分派方法

请尝试以下方法:

class TaxRateDeleteView(RedirectView):
    def get_redirect_url(self, *args, **kwargs):
        TaxRate.objects.get(id=int(kwargs['pk'])).delete()   
        return reverse('delete_rate')

我不认为将逻辑放入
get\u redirect\u url
是正确的方法。总的来说,我希望它只给我url而不删除任何东西。为什么它在分派方法中更好?这样,只有当重定向视图的其他所有内容都正确时才会发生。好吧,公平地说,重定向视图上有一个delete方法,这是放置它的最佳位置,不过您需要确保它是发送到视图的删除请求。我也不认为分派是删除对象的最佳位置。我不认为将逻辑放入
get\u redirect\u url
是正确的方法。总的来说,我希望它只给我url而不删除任何东西。为什么它在分派方法中更好?这样,只有当重定向视图的其他所有内容都正确时才会发生。好吧,公平地说,重定向视图上有一个delete方法,这是放置它的最佳位置,不过您需要确保它是发送到视图的删除请求。我也不认为分派是删除对象的最佳位置。使用重定向视图删除对象是个坏主意。您不应该删除具有如下get请求的对象。这将是一个更好的开始。谢谢通知。提到这一点,我对答案投了赞成票。使用重定向视图删除对象是个坏主意。您不应该删除具有如下get请求的对象。这将是一个更好的开始。谢谢通知。我对提到这一点的答案投了赞成票。效果很好+1用于提及执行删除的更好方式。效果非常好+1介绍执行删除的更好方法。