ich ein URLs Muster wie diese haben:Raise 404 und weiterhin die URL Kette
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'),
)
Die filtered-list
und title
Spiel die gleichen Dinge.
Wenn es eine Liste von Dingen gibt, die zu der tag
in filtered-list
passen, möchte ich list_titles
abfeuern. Aber wenn es kein passendes tag
gibt, möchte ich das zurück zum URL Prozessor sprudeln, also show_title
feuert weg.
Wenn es keinen übereinstimmenden Titel gibt, werde ich dort einen richtigen 404 auslösen.
Ich weiß, dass ich dies aus der Sicht tun kann ... aber es ist ein bisschen stinkend, den Prozess in die Ansicht zu verdrahten. Ich möchte, dass die Reihenfolge der URLs entscheidet, was zuerst ausgewählt wird und wohin es geht.
danke für get_list_or_404 aber das ist keine Antwort so sehr auf meine Frage. Ich sage, wenn ich keine Liste von Titeln basierend auf der URL erhalten kann, möchte ich, dass die URL über den Rest der URLs neu bewertet wird. – Oli
Hmm ... Ich verstehe. Ihre ursprüngliche Frage war nicht sehr klar. Denken Sie daran, dass urls.py nur Python-Code ist, so dass Sie dort eine Art Validierung durchführen können. Gib mir eine Minute und ich werde meine Antwort bearbeiten. –
'raise Http404' sollte wahrscheinlich' raise Http404() ': https://docs.djangoproject.com/en/2.0/topics/http/views/#the-http404-exception sein –