Інші відповіді працюють здебільшого, але вони не дають повністю сумісних відповідей HTTP 204, оскільки вони все ще містять заголовок вмісту. Це може спричинити попередження WSGI і підхоплюється тестовими інструментами, такими як веб-тест Django.
Ось покращений клас відповіді HTTP 204, який відповідає вимогам. (на основі цього квитка Django ):
from django.http import HttpResponse
class HttpResponseNoContent(HttpResponse):
"""Special HTTP response with no content, just headers.
The content operations are ignored.
"""
def __init__(self, content="", mimetype=None, status=None, content_type=None):
super().__init__(status=204)
if "content-type" in self._headers:
del self._headers["content-type"]
def _set_content(self, value):
pass
def _get_content(self, value):
pass
def my_view(request):
return HttpResponseNoContent()