Daher verwende ich nur wenige Dekoratoren von Django, um das Cachen auf meiner API zu ermöglichen:
@require_GET
@cache_page(100)
@cache_control(max_age=100, s_maxage=100)
@csrf_exempt
def my_api(request):
Das Problem ist, 304 nicht geändert Antwort istzurück mit text / html Content-Type-Header. Meine API gibt normalerweise den Header application / json Content-Type zurück und ich möchte konsistent sein. Gibt es eine Möglichkeit, Django mitzuteilen, welcher Inhaltstyp mit dem Antwortcode 304 zurückgegeben werden soll?
Antworten:
0 für die Antwort № 1Das Problem ist hier https://github.com/django/django/blob/master/django/http/response.py#L411
Schreiben Sie einen Dekorateur, um den Mimetyp erneut hinzuzufügen
def RestoreMime(fn):
def Wrapper(*args, **kwds):
response = fn(*args, **kwds)
response["Content-type"] = your_mime_type
return response
return Wrapper