如何在Django中产生303 Http响应?

时间:2009-01-03 03:20:08

标签: python django http rest

最近几天我们在another question讨论了以RESTful方式管理随机性的最佳方法;今天我在Django中玩了一些想法,但发现没有简单的标准方式来返回303响应(也不是300响,顺便说一句),也就是说,里面似乎没有HttpResponseSeeOther django.HTTP或在其他地方。

您知道实现这一目标的任何方法吗?

2 个答案:

答案 0 :(得分:26)

您可以像其他响应一样覆盖HttpResponse:

class HttpResponseSeeOther(HttpResponseRedirect):
    status_code = 303

return HttpResponseSeeOther('/other-url/')

答案 1 :(得分:20)

通用的HttpResponse对象允许您指定所需的任何状态代码:

response = HttpResponse(content="", status=303)
response["Location"] = "http://example.com/redirect/here/"

如果您需要可重复使用的东西,那么Gerald的答案肯定是有效的;只需创建自己的HttpResponseSeeOther类。 Django仅为一些最常见的状态代码提供这些特定的类。