web-dev-qa-db-ja.com

DjangoビューからHTTPステータスコード204を返すにはどうすればよいですか?

Django=ビューからステータスコード204 No Contentを返します。これは、データベースを更新する自動POST更新が成功したことを示します(クライアントをリダイレクトせずに)。

204ではなく、他のほとんどのコードを処理するHttpResponseのサブクラスがあります。

これを行う最も簡単な方法は何ですか?

64
Flash
return HttpResponse(status=204)
138
Steve Mayne

Steve Mayneが答えたものか、HttpResponseをサブクラス化して独自のものを作成します。

from Django.http import HttpResponse

class HttpResponseNoContent(HttpResponse):
    status_code = 204

def my_view(request):
    return HttpResponseNoContent()
17
rantanplan

render を使用する場合、statusキーワード引数があります。

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

(ステータス204の場合、応答本文はありませんが、このメソッドは他のステータスコードに役立ちます。)

13
Mark

render() を返す場合、Djangoのドキュメントによると、render()statusをオプションのパラメーター、および デフォルト値 は200です。

したがって、カスタムステータスを返す場合は、次を使用します。

def my_view(request):
    return render(request,
                  'your-template.html',
                   context=your_context,
                   status=204) # your custom status in this case 204
1
lmiguelvargasf