Django 4.0中的DRF - 从django.conf.urls导入url

5

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

无法导入=> urls.py中的from rest_framework import routers

from django.conf.urls import url ImportError: 无法从'django.conf.urls'导入名称“url”

1个回答

2
根据Django文档这里的说明:

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

自版本3.1起已弃用: 为了向后兼容而使用django.urls.re_path()的别名。

django.conf.urls.url()自Django 3.1版本起被弃用,并根据发布说明这里,在Django 4.0+中已被删除。

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

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


感谢您的答案,但错误来自于我导入时的这一行代码 “from rest_framework import routers”。这个错误在 DRF 中的 router.py 文件中。我使用 path 来处理普通的 URL。在文件“/home/python/django/django/back/virtual_env/lib/python3.8/site-packages/rest_framework/routers.py”的第19行,导入语句出错,需要从 django.conf.urls 导入 url。 - rpjs
你正在使用哪个版本的rest_framework? - Kaushal Sharma
最后一步,使用命令“pip install djangorestframework”进行安装。如果您查看DRF文档,则支持Django 4.0(Django(2.2、3.0、3.1、3.2、4.0)),并且需要使用“from rest_framework import routers”。 - rpjs
@jga 如果您能提供完整的回溯信息将会很有帮助。因为我在rest_framework路由器源代码中找不到任何关于url的参考。 - Kaushal Sharma
1
@jga 还请尝试使用 pip freeze 命令提供您所安装的 rest_framework 的确切版本号。 - Kaushal Sharma
已解决,是因为版本问题,djangorestframework==3.11.1,谢谢。 - rpjs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接