I've been trying to solve this problem for a while, but haven't been able to find a solution that works. Maybe someone can help point out a better method!
I'm using my root urlconf to redirect two requests to an included app:
url("^about/news/", include("kdi.urls")),
url("^about/recognition/", include("kdi.urls")),
And here is the kdi app's urlconf:
url(r"^$", "kdi.views.news", name="news"),
# this is the pattern that needs to change:
url(r"^$", "kdi.views.recog", name="recog"),
It seemed smarter to use the more granular redirection from root ^about/news/ and ^about/recognition to the ^$ in the app's urlconf. This worked fine with only one pattern, but I'd like to scale it to work for both.
Would something like directing ^about/ from root to the app where I could check for ^/news$ or ^/recognition$ in the kdi app be smarter? Would that also be able to use the root's catch-all ^ if no matches were made? Is it possible to check the request.path from the urlconf and then use an if statement to direct to the correct view? Or maybe use a name field in the root and then access via that name in the app's url patterns?
Just having a little trouble working out the logic with this!
edit:
removed namespace field from root urlconf to limit confusion
You're doing something very bizarre here and I can't work out why.
You should only include your app URLs once. But every URL in that included file needs to be different - otherwise Django can't possibly know how to route the request.
So, the main urls.py should be just:
and the app ones should be: