19

パスワードを忘れた場合の機能を Django 管理サイトに追加するには? メール/秘密の質問のオプションはありますか? 利用可能なプラグイン/拡張機能はありますか?

4

2 に答える 2

30

それらはすべてdjangoに組み込まれています。関連する URL パターンを追加するだけです。次のように。

from django.contrib.auth import views as auth_views

patterns+=('',
url(r'^passreset/$',auth_views.password_reset,name='forgot_password1'),
url(r'^passresetdone/$',auth_views.password_reset_done,name='forgot_password2'),
url(r'^passresetconfirm/(?P<uidb36>[-\w]+)/(?P<token>[-\w]+)/$',auth_views.password_reset_confirm,name='forgot_password3'),
url(r'^passresetcomplete/$',auth_views.password_reset_complete,name='forgot_password4'),
)

ついでに、パスワード変更用のビューと URL パターンも追加します。

url(r'^password/change/$',
   auth_views.password_change,
   name='auth_password_change'),
url(r'^password/change/done/$',
   auth_views.password_change_done,
   name='auth_password_change_done'),

もちろん、それらはドキュメントにリストされています。

独自のテンプレートを提供する必要があります。

于 2010-02-16T10:56:09.860 に答える
12

実際、Django 1.4以降、忘れたパスワードのリンクを管理者ログインページに直接表示する簡単な方法があります(正確な質問のように聞こえます):

https://docs.djangoproject.com/en/2.1/ref/contrib/admin/#adding-a-password-reset-feature

URLconf に数行を追加することで、管理サイトにパスワード リセット機能を追加できます。具体的には、次の 4 つのパターンを追加します。

url(r'^admin/password_reset/$',
    'django.contrib.auth.views.password_reset',
    name='admin_password_reset'), (r'^admin/password_reset/done/$',
    'django.contrib.auth.views.password_reset_done'),
(r'^reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$',
    'django.contrib.auth.views.password_reset_confirm'),
(r'^reset/done/$',
    'django.contrib.auth.views.password_reset_complete'), 

(これは、admin/ に管理者を追加したことを前提としており、管理者アプリ自体を含む行の前に ^admin/ で始まる URL を配置する必要があります)。

Django 1.4 で変更されました admin_password_reset という名前の URL が存在すると、「パスワードを忘れましたか?」というメッセージが表示されます。パスワード ボックスの下のデフォルトの管理者ログイン ページに表示されるリンク

于 2013-07-02T20:14:10.123 に答える