ImportError:无法导入名称“ password_reset”

Mph*_*oza 5 python passwords django

我正在尝试在Django(2.1.1)中进行密码重置,但是当我导入密码重置时,我一直收到以下错误消息:

ImportError: cannot import name 'password_reset'
Run Code Online (Sandbox Code Playgroud)

这就是我的意思:

from django.contrib.auth import (
    authenticate,
    get_user_model,
    login,
    logout,
    password_reset,
    password_reset_done
)
Run Code Online (Sandbox Code Playgroud)

Wil*_*sem 7

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

,已按照发行说明中的说明删除了基于函数的视图。

您可以这样写:

from django.contrib.auth.views import PasswordResetView

from django.urls import path

urlpatterns = [
    path(
        'accounts/password_reset/',
        PasswordResetView.as_view(),
        name='password_reset'
    ),
]
Run Code Online (Sandbox Code Playgroud)

当然,您可能需要更改URL,视图名称,并将参数传递给,as_view以针对PasswordResetView您的特定用例进行定制。

需要注意的是,如在发行说明中指定,其他相关意见已被删除,以及像password_changepassword_change_donepassword_reset_donepassword_reset_confirm,和password_reset_complete