Django 2.0升级-URL上的误报W001警告

时间:2019-02-15 16:04:43

标签: python django

我正在将Django项目从Django 1.11升级到Django 2.1.7,在将所有URL模式更改为Django 2的处理方式后,我在url上收到了很多误报。W001警告当我执行manage.py runserver时。

示例:

?: (urls.W001) Your URL pattern '^some-pattern/$' [name='some_name'] uses include with a route ending with a '$'. Remove the dollar from the route to avoid problems including URLs.

但是,当我查看urls.py文件中的URL模式时,绝对没有^或$。

path('some-pattern/', views.some_view_function, name='some_name'),

我已经吹走了本地的virtualenv和我的Vagrant盒子,并从头开始,只是为了确保它不是某个地方缠绵的编译内容,但是从头开始时的行为是相同的。

还有其他人遇到吗?该应用程序本身似乎运行良好,我只是对Django可能看到的代码中不存在的东西感到困惑。

感谢任何人可能提出的任何想法。

3 个答案:

答案 0 :(得分:1)

当我在我的PC上运行了两个django项目时,发生在我身上的事情是,如果您不使用虚拟环境,事情就会变得一团糟,并且总是进入相同的路径列表。

我将首先更改您尝试访问的路线的名称,以便您知道是否要去检查路线列表

接下来要小心,因为使用路径路由 path('this-way / ...与path('/ this-way /'...不同 path('this-way / ...将'/ this-way /'添加到浏览器的方向 示例:https://localhost:8000/login更改为https://localhost:8000/login/this-way/ 这就是美元可能来自的地方

答案 1 :(得分:1)

结果证明这确实与Django CMS有关-这是他们的第一个发行版,支持Django 2,但它仍然也支持Django 1.11,因此他们在某些方面以及当它引入URL时降低了中间值对于我们的apphooks,它们被转换为带有^和$的模式。希望信息可以帮助其他可能遇到此问题的人。感谢您的所有建议!

答案 2 :(得分:1)

正如@matt所说,罪魁祸首是Django CMS过渡到Django 2.0。

我已将警告静音

SILENCED_SYSTEM_CHECKS = ['urls.W001']

在settings.py