Как я могу вернуть код состояния HTTP 204 из представления Django?
Я хочу вернуть код состояния 204 No Content
из вида Django. Это в ответ на автоматическое сообщение, которое обновляет базу данных, и мне просто нужно указать, что обновление было успешным (без перенаправления клиента).
есть подклассы HttpResponse
для обработки большинства других кодов, а не 204.
какой самый простой способ сделать это?
4 ответа:
либо что Стив Мэйн ответил, или создать свой собственный путем создания подклассов класса HttpResponse:
from django.http import HttpResponse class HttpResponseNoContent(HttpResponse): status_code = 204 def my_view(request): return HttpResponseNoContent()
при использовании оказать, есть
status
аргумент сайта.return render(request, 'template.html', status=204)
(обратите внимание, что в случае состояния 204 не должно быть ответной реакции организма, но этот метод полезен для других кодов состояния.)
если вы возвращаете
render()
, согласно документации Django,render()
принимаетstatus
как необязательный параметр, и его значение по умолчанию - это 200.поэтому, если вы хотите вернуть пользовательский статус, используйте:
def my_view(request): return render(request, 'your-template.html', context=your_context, status=204) # your custom status in this case 204