Python Django redirectView返回无
我试图在django中使用重定向视图,但我一直遇到以下错误: 视图gp_accountary.gp_taxes.views.TaxRateDeleteView未返回HttpResponse对象。它没有返回任何结果 我的代码基于 有人知道问题出在哪里吗 这是我的url文件(路径: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
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介绍执行删除的更好方法。