Как мне вернуть пользовательский ответ / код состояния в Django?

#django #http #http-status-codes #status

#django #http #http-status-codes #Статус

Вопрос:

Я хочу вернуть код состояния, отличный от 100 <= self.status_code <= 599 , написанного в классе HttpResponseBase Django. Есть ли какой-нибудь простой способ обойти это ограничение?

Комментарии:

1. HTTP-коды имеют диапазоны, например, 100-199 — это информация, 200-299 — это успех, 300-399 — перенаправление и т.д. Поэтому нет особого смысла возвращать код состояния за пределами этого диапазона. Тем более, что браузер обычно перенаправляет, например, в случае 301/302.

Ответ №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  

Но не имеет особого смысла указывать код состояния HTTP [wiki] за пределами диапазона 100-599, поскольку они подразделяются на поддиапазоны, которые указывают, в каком случае возвращать какой код состояния.