Die anderen Antworten funktionieren meistens, erzeugen jedoch keine vollständig kompatiblen HTTP 204-Antworten, da sie immer noch einen Inhaltsheader enthalten. Dies kann zu WSGI-Warnungen führen und wird von Testtools wie Django Web Test erfasst.
Hier ist eine verbesserte Klasse für eine HTTP 204-Antwort, die kompatibel ist. (basierend auf diesem Django Ticket ):
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()