【发布时间】:2010-09-29 08:12:47
【问题描述】:
前几天我们在another question 讨论了以 RESTful 方式管理随机性的最佳方法;今天我在Django中玩了一些想法,结果发现没有简单的标准方法可以返回303响应(也不是300,顺便说一句),也就是说,里面似乎不存在HttpResponseSeeOther django.HTTP 或其他地方。
您知道实现此目的的任何方法吗?
【问题讨论】:
前几天我们在another question 讨论了以 RESTful 方式管理随机性的最佳方法;今天我在Django中玩了一些想法,结果发现没有简单的标准方法可以返回303响应(也不是300,顺便说一句),也就是说,里面似乎不存在HttpResponseSeeOther django.HTTP 或其他地方。
您知道实现此目的的任何方法吗?
【问题讨论】:
您可以像其他响应一样覆盖 HttpResponse:
class HttpResponseSeeOther(HttpResponseRedirect):
status_code = 303
return HttpResponseSeeOther('/other-url/')
【讨论】:
通用 HttpResponse 对象可让您指定所需的任何状态代码:
response = HttpResponse(content="", status=303)
response["Location"] = "http://example.com/redirect/here/"
如果您需要可重复使用的东西,那么 Gerald 的回答绝对有效;只需创建您自己的 HttpResponseSeeOther 类。 Django 只为一些最常见的状态码提供这些特定的类。
【讨论】: