Как создать 303 Http-ответ в Django? - PullRequest
19 голосов
/ 03 января 2009

Последние пару дней мы обсуждали на другой вопрос , чтобы лучше всего справиться со случайностью RESTful; сегодня я немного поигрался с некоторыми идеями в Django, но обнаружил, что не существует простого стандартного способа возврата ответа 303 (ни 300, кстати), то есть, кажется, внутри не существует HttpResponseSeeOther django.HTTP или в другом месте.

Знаете ли вы какие-либо средства для достижения этой цели?

Ответы [ 2 ]

26 голосов
/ 03 января 2009

Вы можете просто переопределить HttpResponse, как и другие ответы:

class HttpResponseSeeOther(HttpResponseRedirect):
    status_code = 303

return HttpResponseSeeOther('/other-url/')
20 голосов
/ 03 января 2009

Общий объект HttpResponse позволяет вам указать любой код состояния, который вы хотите:

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

Если вам нужно что-то повторно использовать, ответ Джеральда определенно действителен; просто создайте свой собственный класс HttpResponseSeeOther. Django предоставляет эти конкретные классы только для нескольких наиболее распространенных кодов состояния.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...