![](/img/trans.png)
[英]Django: Overwrite ROOT_URLCONF with request.urlconf in middleware
[英]django urlconf direct from root to included app logic
我已经尝试解决这个问题了一段时间,但一直没有找到有效的解决方案。 也许有人可以帮助指出更好的方法!
我正在使用根urlconf将两个请求重定向到包含的应用程序:
url("^about/news/", include("kdi.urls")),
url("^about/recognition/", include("kdi.urls")),
这是kdi
应用的urlconf:
url(r"^$", "kdi.views.news", name="news"),
# this is the pattern that needs to change:
url(r"^$", "kdi.views.recog", name="recog"),
使用从根^about/news/
和^about/recognition
到应用程序urlconf中的^$
的更精细的重定向似乎更聪明。 这仅适用于一种模式,但我想对其进行扩展以使其适用于两种模式。
将^about/
从根目录引导到可以在kdi
应用中检查^/news$
或^/recognition$
的应用中, kdi
会更聪明? 如果未进行匹配,那还能使用根的全包^
吗? 是否可以从urlconf中检查request.path
,然后使用if语句将其定向到正确的视图? 还是可以在根目录中使用name
字段,然后通过应用程序的网址格式中的该名称进行访问?
只是有点麻烦,以此来确定逻辑!
编辑:
从根urlconf中删除了namespace
字段以限制混乱
您在这里做的事情很奇怪,我不知道为什么。
您只应添加一次应用网址。 但是该包含文件中的每个URL都必须不同 -否则Django无法知道如何路由请求。
因此,主要的urls.py应该只是:
url("^about/", include("kdi.urls")),
和应用程序应该是:
url(r"^news/$", "kdi.views.news", name="news"),
url(r"^recognition/$", "kdi.views.recog", name="recog")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.