最近几天我们在another question讨论了以RESTful方式管理随机性的最佳方法;今天我在Django中玩了一些想法,但发现没有简单的标准方式来返回303响应(也不是300响,顺便说一句),也就是说,里面似乎没有HttpResponseSeeOther django.HTTP或在其他地方。
您知道实现这一目标的任何方法吗?
答案 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仅为一些最常见的状态代码提供这些特定的类。