Tengo un patrón de URL como esta:Levante 404 y continuar la cadena URL
urlpatterns = (
url(r'^$', list_titles, name='list'),
url(r'^(?P<tag>[a-z\-0-9]+?)/$', list_titles, name='filtered-list'),
url(r'^(?P<title>\S+?)/$', show_title, name='title'),
)
El partido filtered-list
y title
las mismas cosas.
Si hay una lista disponible de cosas que coinciden con tag
en filtered-list
, quiero list_titles
para disparar. Pero si no hay un tag
que coincida, quiero enviar un mensaje de burbuja al procesador de URL para que show_title
se desactive.
Si no hay un título que coincida, subiré un 404 adecuado allí.
Sé que puedo hacer esto desde el interior de la vista ... pero tiene un mal olor tener que conectar el proceso a la vista. Me gustaría que el orden de la URL decidiera primero qué es lo que se elige y a qué se lo transfiere.
gracias por get_list_or_404 pero esta no es una respuesta tanto a mi pregunta. Estoy diciendo que si no puedo obtener una lista de títulos basados en la URL, quiero que la URL se vuelva a evaluar a través del resto de las URL. – Oli
Hmm ... Ya veo. Tu pregunta original no era terriblemente clara. Recuerde que urls.py es solo código Python, por lo que puede hacer algún tipo de validación allí. Dame un minuto y voy a editar mi respuesta. –
'raise Http404' debería ser probablemente' raise Http404() ': https://docs.djangoproject.com/en/2.0/topics/http/views/#the-http404-exception –