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

Я хочу вернуть код состояния 204 No Content из представления Django. Это ответ на автоматический POST, который обновляет базу данных, и мне просто нужно указать, что обновление прошло успешно (без перенаправления клиента).

Существуют подклассы HttpResponse для обработки большинства других кодов, но не 204.

Каков самый простой способ сделать это?

Ответ 1

return HttpResponse(status=204)

Ответ 2

Или то, что ответил Стив Мейн, или создайте свой собственный, подклассифицируя HttpResponse:

from django.http import HttpResponse

class HttpResponseNoContent(HttpResponse):
    status_code = 204

def my_view(request):
    return HttpResponseNoContent()

Ответ 3

При использовании render существует аргумент ключевого слова status.

return render(request, 'template.html', status=204)

(Обратите внимание, что в случае статуса 204 не должно быть тела ответа, но этот метод полезен для других кодов состояния.)