Pozostałe odpowiedzi działają głównie, ale nie generują w pełni zgodnych odpowiedzi HTTP 204, ponieważ nadal zawierają nagłówek treści. Może to skutkować ostrzeżeniami WSGI i jest odbierane przez narzędzia testowe, takie jak Django Web Test.
Oto ulepszona klasa dla zgodnej odpowiedzi HTTP 204. (na podstawie tego biletu 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()