Les autres réponses fonctionnent en général, mais elles ne produisent pas de réponses HTTP 204 entièrement conformes, car elles contiennent toujours un en-tête de contenu. Cela peut entraîner des avertissements WSGI et est détecté par des outils de test comme Django Web Test.
Voici une classe améliorée pour une réponse HTTP 204 qui est conforme. (basée sur cette Ticket 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()