django locale-url导入错误,无法从'django.core'导入'name'为'urlresolvers'的名称。
django locale-url导入错误,无法从'django.core'导入'name'为'urlresolvers'的名称。
我正在阅读文档。\n这是导入语句:\n
from django.core import urlresolvers
\n我遇到了这个错误:\n
ImportError: 无法从'django.core'中导入名称'urlresolvers' (xxx/nbrl-project/nbrlenv/lib/python3.8/site-packages/django/core/__init__.py)
\n有人可以帮我解决吗?
问题的原因是在使用django-allauth时,设置文件settings.py中存在一个错误的配置。解决方法是删除这个错误的配置,并正确配置django-allauth。
错误的配置是在设置文件settings.py中包含了"allauth.account.auth_backends.AuthenticationBackend"这一行。这行配置的作用是将django-allauth的认证后端添加到认证后端列表中。然而,由于某种原因,这个配置导致了导入错误。
为了解决这个问题,我们需要删除这一行配置。删除方法是在设置文件settings.py中找到包含"allauth.account.auth_backends.AuthenticationBackend"的那一行,并将其删除。
此外,我们还需要正确配置django-allauth。具体配置方法可以参考django-allauth的官方文档或相关教程。通过正确配置django-allauth,我们可以确保它的认证后端能够正常工作,而不需要手动添加错误的配置。
总结起来,问题的原因是错误的配置导致了导入错误。解决方法是删除错误的配置,并正确配置django-allauth。通过这些步骤,我们可以避免出现"django locale-url import error cannot import name 'urlresolvers' from 'django.core'"这个错误。
问题原因:django-localeurl库已经停止维护,并且其方法已被Django自身引入的支持多语言URL模式所取代。
解决方法:不要使用django-localeurl库,而是使用Django自带的URL国际化功能。具体步骤可以参考Django官方文档中的URL国际化部分(https://docs.djangoproject.com/en/3.1/topics/i18n/translation/#url-internationalization)。另外,尽量避免使用Django和其他库的未维护版本,以免引起其他麻烦。
问题的出现原因是导入的模块名称错误。在Django的较高版本中,django.core.urlresolvers模块已被移动到django.urls模块。因此,无法从django.core中导入urlresolvers。
解决方法是使用正确的模块导入语句。在较高版本的Django中,应使用以下语句导入reverse函数:
from django.urls import reverse
同时,建议保持Django版本更新到最新版本,因为不再支持1.3版本。Django 1.3版本已经非常老旧,自2011年起不再维护。如果有选择的话,特别是在开始新项目时,请不要再使用1.3版本。而且,django-localeurl库也已不再维护,最后一次提交是在2015年。Django已经内置了处理URL国际化的方法,可以在官方文档中查看相关信息。
所以,可以说localeurl库已经不推荐使用,而是建议使用Django的内置功能来处理URL国际化。