В Django HttResponse нет attr status_code, но в документации есть :)
Я использую стандартный httpresponse django, вот так:
return HttpResponse("Validation Error", status_code=400)
И я получаю исключение типа "HttpResponse не имеет атрибута status_code". Но в документации есть информация об этом атрибуте (docs link)
Если мы посмотрим на исходный код, то увидим:
class HttpResponse(HttpResponseBase):
...
def __init__(self, content=b'', *args, **kwargs):
super().__init__(*args, **kwargs)
# Content is a bytestring. See the `content` property methods.
self.content = content
...
Не явное использование status_code, давайте посмотрим родительский init:
class HttpResponseBase:
def __init__(self, content_type=None, status=None, reason=None, charset=None, headers=None):
...
if status is not None:
try:
self.status_code = int(status)
except (ValueError, TypeError):
raise TypeError('HTTP status code must be an integer.')
if not 100 <= self.status_code <= 599:
raise ValueError('HTTP status code must be an integer from 100 to 599.')
self._reason_phrase = reason
И здесь в params мы видим status.
Если вернуться к моему примеру, то правильная версия выглядит так:
return HttpResponse("Validation Error", status=400)
И мой вопрос: "Есть ли место в документации, где говорилось о status HttpResponse и если нет, то как я могу сделать проблему или донести эту информацию до django-разработчиков?"
Как я вижу, это недостаточно очевидно.
status_code
является атрибутом HttpResponse
это означает, что если вы хотите узнать статус ответа, вы можете вывести status_code объекта HttpResponse следующим образом
resp = HttpResponse()
print(resp.status_code)
и в документе в этом разделе говорится о методах и аргументах
например здесь говорится об аргументе status в HttpResponse