ImportError:无法导入名称'password_reset'

Posted

技术标签:

【中文标题】ImportError:无法导入名称\'password_reset\'【英文标题】:ImportError: cannot import name 'password_reset'ImportError:无法导入名称'password_reset' 【发布时间】:2019-03-17 10:49:29 【问题描述】:

我正在尝试在 django (2.1.1) 中进行密码重置,但在导入密码重置时我不断收到以下错误:

ImportError: cannot import name 'password_reset'

这是我的导入:

from django.contrib.auth import (
    authenticate,
    get_user_model,
    login,
    logout,
    password_reset,
    password_reset_done
)

【问题讨论】:

视图已在 Django-2.1 中被移除 【参考方案1】:

password_reset 视图等基于函数的视图已重写为基于类的视图:django-1.11 中的 PasswordResetView [Django-doc] 类,如 release notes 中所指定。这些基于函数的视图仍然可以使用,但已弃用

截至django-2.1,已删除基于函数的视图,如release notes 中所述。

你可以这样写:

from django.contrib.auth.views import PasswordResetView

from django.urls import path

urlpatterns = [
    path(
        'accounts/password_reset/',
        PasswordResetView.as_view(),
        name='password_reset'
    ),
]

当然,您可能希望更改 URL、视图名称,并将参数传递给 as_view,以根据您的特定用例定制 PasswordResetView

请注意,如发行说明中所述,其他相关视图也已删除,例如 password_changepassword_change_done@987654333 @password_reset_confirmpassword_reset_complete

【讨论】:

感谢 Willem,现在我收到以下错误:找不到“password_reset_done”的反向。 'password_reset_done' 不是有效的视图函数或模式名称。 @Mphoza:就像上一段所说的那样,您需要将所有下面的视图更改为 CBV 对应项。

以上是关于ImportError:无法导入名称'password_reset'的主要内容,如果未能解决你的问题,请参考以下文章

ImportError:无法导入名称“WebClient”

ImportError:无法导入名称“AFAVSignature”

ImportError:无法导入名称“评估”(来自意外导入评估)

Django 'ImportError: 无法导入名称 url'

ImportError:导入 PCA 时无法导入名称“LatentDirichletAllocation”[关闭]

如何修复“ImportError:无法导入名称'StringIO'”