如何从Django视图返回HTTP状态代码204?

Fla*_*ash 68 python django http http-status-codes

我想204 No Content从Django视图返回状态代码.它是响应自动POST更新数据库而我只需要指示更新成功(不重定向客户端).

有一些子类HttpResponse可以处理大多数其他代码,但不能处理204.

最简单的方法是什么?

Ste*_*yne 146

return HttpResponse(status=204)
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.W3C声明"204响应绝不能包含消息体"所以(假设内容参数映射到消息体)它应该是空白的,对吧? (4认同)
  • django 不使用幻数,还提供常量(参见 https://www.django-rest-framework.org/api-guide/status-codes/),例如 `return HttpResponse(status=rest_framework.status.HTTP_204_NO_CONTENT) ` (2认同)

ran*_*lan 17

要么Steve Mayne回答,要么通过继承HttpResponse来构建自己的:

from django.http import HttpResponse

class HttpResponseNoContent(HttpResponse):
    status_code = 204

def my_view(request):
    return HttpResponseNoContent()
Run Code Online (Sandbox Code Playgroud)


Mar*_*ark 15

使用render时,有一个status关键字参数.

return render(request, 'template.html', status=204)
Run Code Online (Sandbox Code Playgroud)

(请注意,在状态204的情况下,不应该有响应主体,但此方法对其他状态代码很有用.)