【问题标题】:How do I return custom response/status code in Django?如何在 Django 中返回自定义响应/状态代码?
【发布时间】:2026-01-16 01:35:01
【问题描述】:

我想返回不同于100 <= self.status_code <= 599 的状态码,正如Django 的HttpResponseBase 类中所写的那样。有什么简单的方法可以绕过这个限制吗?

【问题讨论】:

  • HTTP代码是有范围的,例如100-199是信息,200-299是成功,300-399是重定向等。所以返回这个范围之外的状态码没有多大意义.特别是因为浏览器通常会在 301/302 的情况下重定向。

标签: django http http-status-codes status


【解决方案1】:

如果你真的想要,你可以修补.status_code 属性。例如:

from django.http import HttpResponse

def some_view(request):
    response = HttpResponse('some data')
    response.status_code = 754  # sample status code
    return response

但是在 100-599 范围之外指定 HTTP status code [wiki] 并没有多大意义,因为这些被细分为指定在什么情况下返回什么状态码的子范围。

【讨论】: