我想从Django视图返回状态代码204 No Content
。它是响应自动POST更新数据库而我只需要指示更新成功(不重定向客户端)。
有HttpResponse
的子类来处理大多数其他代码,但不是204。
最简单的方法是什么?
return HttpResponse(status=204)
要么Steve Mayne回答,要么通过继承HttpResponse来构建自己的:
from django.http import HttpResponse
class HttpResponseNoContent(HttpResponse):
status_code = 204
def my_view(request):
return HttpResponseNoContent()
使用render时,有一个status
关键字参数。
return render(request, 'template.html', status=204)
(请注意,在状态204的情况下,不应该有响应主体,但此方法对其他状态代码很有用。)
如果你要返回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