Django从1.11升级到2.2.1的URL和路径问题

时间:2019-05-03 02:10:14

标签: django django-templates django-views django-2.2

今天,我决定将我的项目从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/ 而且我只是看不到我可能做错了什么。在此先感谢您为我提供的帮助。

2 个答案:

答案 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会按预期工作。