2009-01-03 14 views
18

El último par de días estuvimos discutiendo en another question lo mejor para manejar la aleatoriedad de una manera RESTful; Hoy fui a jugar un poco con algunas ideas en Django solo para encontrar que no hay una forma estándar fácil de devolver una respuesta 303 (ni una 300, por cierto), es decir, no parece existir un HttpResponseSeeOther inside django.HTTP o en otro lugar.¿Cómo producir una respuesta de 303 Http en Django?

¿Conoces algún medio para lograr esto?

Respuesta

25

Se podía anular HttpResponse, al igual que las otras respuestas hacen:

class HttpResponseSeeOther(HttpResponseRedirect): 
    status_code = 303 

return HttpResponseSeeOther('/other-url/') 
+5

También puede presentar esto como un ticket con un parche. –

20

El objeto HttpResponse genérico le permite especificar cualquier código de estado que desee:

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

Si necesita algo reutilizable entonces la respuesta de Gerald es definitivamente válida; simplemente crea tu propia clase HttpResponseSeeOther. Django solo proporciona estas clases específicas para algunos de los códigos de estado más comunes.

Cuestiones relacionadas