Me gustaría devolver 410 errores en algunas de mis páginas de Django en lugar de devolver 404s. Básicamente, en lugar de llamar al raise Http404('some error message')
, me gustaría llamar al acceso directo raise Http410('some error message')
.Cómo generar un error 410 en Django
Estoy confundido porque en django.http, la función Http404 es simplemente:
class Http404(Exception):
pass
Así que si hago lo mismo y crear mi función Http410, quiero suponer que se vería así:
class Http410(Exception):
pass
Sin embargo, al hacerlo se devuelve la excepción pero se muestra una página con 500 errores. ¿Cómo recreo la magia de la excepción Http404? Debo señalar, tengo que levantar la excepción de mis modelos (no vistas), así que no puedo simplemente devolver un HttpResponseGone.
¡Gracias de antemano!
Actualización: Soy plenamente consciente de HttpResponseGone y mencioné esto en mi pregunta original. Ya sé cómo devolver esto en mi opinión. Mi pregunta es: ¿cómo se plantea una excepción Http 410 similar a cómo se plantea una excepción Http 404? Quiero ser capaz de plantear esta excepción en cualquier lugar, no solo en mi opinión. ¡Gracias!
Perfecto. ¡Gracias! – Spike
Además, gracias por su comentario sobre cómo se debe haber ido el flujo de trabajo normal en lugar de una condición de error. Lo tendré en cuenta. – Spike
@Spike ¿Por qué no puedes simplemente devolver un objeto 'HttpResponseGone' en lugar de lanzar una excepción y hacer que el middleware inyecte el objeto? – Santa