今天,我决定将我的项目从Django 1.11升级到2.2.1。我一直在为我的项目解决各种问题,并且正在努力解决这些问题。但是,今晚我大部分时间都在尝试使这些URL正常工作,并且它们不会配合。长话短说,我的项目中有多个应用程序,每个应用程序都有一个带有自己命名空间的URL。在Django 1.11中,这可以正常工作。但是,当我尝试将逻辑移植到Django 2.2.1时,我总是收到错误消息,说我可能在某处进行了循环导入。
这是在Django 1.11中正常工作的摘要。
我的主要项目...在Django 1.11中
url(r'^Main/',include('AppA.urls',namespace="AppA")),
但是当我尝试在Django 2.2.1 ........
中执行此操作时我意识到URL已被路径替换...
path('', include('AppA.urls')),
但是当我尝试启动我的应用程序时,它说...。
your project does not appear to have any patterns in it. If you see valid p
atterns in the file then the issue is probably caused by a circular import.
我似乎无法弄清楚如何创建在django 1.11中工作的命名空间,以便可以在模板中正确引用我的url。
我整晚都在凝视,这也许就是为什么我没看到它的原因……我也看了Django文档... https://docs.djangoproject.com/en/2.2/topics/http/urls/ 而且我只是看不到我可能做错了什么。在此先感谢您为我提供的帮助。
答案 0 :(得分:1)
考虑使用re_path()代替path()
:
from django.urls import include, re_path
re_path(r'^Main/',include('AppA.urls',namespace="AppA")),
答案 1 :(得分:1)
正如Bloodmallet向我指出的那样...
我需要添加。...
app_name = 'Appa'
到我的urls.py文件顶部。完成此操作后,路径URL会按预期工作。