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

问题描述 投票:62回答:4

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

HttpResponse的子类来处理大多数其他代码,但不是204。

最简单的方法是什么?

python django http http-status-codes
4个回答
134
投票
return HttpResponse(status=204)

17
投票

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

from django.http import HttpResponse

class HttpResponseNoContent(HttpResponse):
    status_code = 204

def my_view(request):
    return HttpResponseNoContent()

12
投票

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

return render(request, 'template.html', status=204)

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


1
投票

如果你要返回render(),根据Django文档,render()status作为可选参数,其default value为200。

因此,如果要返回自定义状态,请使用:

def my_view(request):
    return render(request,
                  'your-template.html',
                   context=your_context,
                   status=204) # your custom status in this case 204
© www.soinside.com 2019 - 2024. All rights reserved.