首页 > 解决方案 > ImportError:无法导入名称'password_reset'

问题描述

我正在尝试在 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
)

标签: pythondjangopasswords

解决方案


password_reset视图等基于函数的视图已被重写为基于类的视图:django-1.11 中的[ PasswordResetView-doc]类,如发行说明中所述。这些基于函数的视图仍然可以使用,但已被弃用

开始,基于功能的视图已被删除,如发行说明中所述。

你可以这样写:

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_donepassword_reset_donepassword_reset_confirmpassword_reset_complete


推荐阅读