【问题标题】:Should the response argument to `process_response` always be a subclass of HttpResponse?`process_response` 的响应参数是否应该始终是 HttpResponse 的子类?
【发布时间】:2015-05-11 22:52:47
【问题描述】:

问题在标题中。发现当我们的视图引发Http404异常时,我们process_response方法的响应参数是异常而不是HttpResponse

这是正确的吗?我们在编写中间件时是否需要考虑这种情况或是否配置错误?

【问题讨论】:

    标签: django middleware


    【解决方案1】:

    好吧,如果它看起来像一只鸭子,并且像鸭子一样嘎嘎......

    但是是的,您的process_response() 方法应该接收HttpResponse 子类,而不是例外。如果您的中间件收到异常,很可能是由于在视图或先前的中间件方法中返回 Http404 而不是引发它。

    【讨论】:

    • 我创建了一个执行raise Http404 的测试视图,并确认它最终作为process_response 中的响应对象传入。你怎么看?
    • 发现问题。问题是另一个中间件覆盖了process_exception 并错误地返回了Http404 异常作为响应。谢谢你的鸭子!我将您的回复标记为解决方案。
    猜你喜欢
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 2013-02-02
    • 2016-02-16
    • 2011-04-17
    • 2017-02-11
    • 2015-01-30
    相关资源
    最近更新 更多