【问题标题】:DRF - from django.conf.urls import url in Django 4.0DRF - 从 Django 4.0 中的 django.conf.urls 导入 url
【发布时间】:2022-01-18 09:31:21
【问题描述】:

我在 django 3.2 中有一个项目,并且我已将 (pip install -r requirements.txt) 更新到 4.0 版(新版本),当我在虚拟环境中运行服务器时,目前出现以下错误。我使用 DRF。

无法导入 => 从 urls.py 中的 rest_framework 导入路由器

from django.conf.urls import url ImportError: cannot import name 'url' from 'django.conf.urls'

【问题讨论】:

    标签: python django django-rest-framework


    【解决方案1】:

    根据 Django 文档 here:

    url(regex, view, kwargs=None, name=None)¶ 该函数是 django.urls.re_path() 的别名。

    自 3.1 版起已弃用: django.urls.re_path() 的别名用于向后兼容。

    django.conf.urls.url() 自 Django 3.1 起已弃用,根据发行说明 here,已在 Django 4.0+ 中删除。

    您可以使用pathre_path 解决此问题。

    https://docs.djangoproject.com/en/4.0/ref/urls/

    【讨论】:

    • 感谢您的回答,但是当我导入它时,错误来自“from rest_framework import routers”这一行。此错误位于 DRF 中,位于文件 router.py 中。我使用普通网址的路径。文件“/home/python/django/django/back/virtual_env/lib/python3.8/site-packages/rest_framework/routers.py”,第 19 行,在 from django.conf.urls import url
    • 你使用的是哪个版本的rest_framework?
    • 最后一个,用这个命令“pip install djangorestframework”。如果您看到 DRF 文档 django 4.0 被支持(Django (2.2, 3.0, 3.1, 3.2, 4.0),并且需要“from rest_framework import routers”。
    • @jga 如果您可以提供完整的回溯,将会很有帮助。因为我在 rest_framework 路由器源代码中找不到对 url 的任何引用。
    • @jga 还尝试使用 pip freeze 提供您已安装的 rest_framework 的确切版本号。
    猜你喜欢
    • 2022-01-17
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2022-06-16
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    相关资源
    最近更新 更多