Je souhaite renvoyer le code d'état 204 No Content
à partir d'une vue Django. C'est en réponse à un POST qui met à jour une base de données et j'ai juste besoin d'indiquer que la mise à jour a réussi (sans redirection) le client).
Il existe des sous-classes de HttpResponse
pour gérer la plupart des autres codes mais pas 204.
Quelle est la manière la plus simple de procéder?
return HttpResponse(status=204)
Soit ce que Steve Mayne a répondu, soit créez le vôtre en sous-classant HttpResponse:
from Django.http import HttpResponse
class HttpResponseNoContent(HttpResponse):
status_code = 204
def my_view(request):
return HttpResponseNoContent()
Lors de l'utilisation de render , il y a un argument de mot clé status
.
return render(request, 'template.html', status=204)
(Notez que dans le cas du statut 204, il ne devrait pas y avoir de corps de réponse, mais cette méthode est utile pour d'autres codes de statut.)
Si vous retournez render()
, selon la documentation Django, render()
prend status
comme paramètre facultatif, et son valeur par défaut est 200.
Par conséquent, si vous souhaitez renvoyer un statut personnalisé, utilisez:
def my_view(request):
return render(request,
'your-template.html',
context=your_context,
status=204) # your custom status in this case 204