Làm cách nào để thêm tính năng quên mật khẩu vào trang quản trị Django? Với các tùy chọn câu hỏi bảo mật/email? Có bất kỳ plug-in/extension nào không?Thêm tính năng quên mật khẩu vào trang quản trị Django
Trả lời
Tất cả đều được tích hợp sẵn trong django. Chỉ cần thêm các mẫu url có liên quan. Như sau.
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'),
)
Và, trong khi bạn đang ở đó, cũng thêm các dạng xem và url để thay đổi mật khẩu.
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'),
Chúng được liệt kê trong documentation tất nhiên.
Bạn sẽ phải cung cấp các mẫu của riêng mình.
Trên thực tế kể từ Django 1,4 có một cách dễ dàng để có được những liên kết quên mật mã xuất hiện trực tiếp trong trang quản trị đăng nhập (mà âm thanh như các câu hỏi chính xác yêu cầu):
https://docs.djangoproject.com/en/1.4/ref/contrib/admin/#auth-password-reset
Bạn có thể thêm tính năng đặt lại mật khẩu cho trang quản trị bằng cách thêm một vài dòng vào URLconf của bạn. Cụ thể, thêm bốn mẫu:
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'),
(Điều này giả định bạn đã thêm admin tại admin/và yêu cầu bạn đặt URL bắt đầu với^admin/trước dòng bao gồm các ứng dụng quản trị chính nó).
Thay đổi trong Django 1,4 Sự hiện diện của admin_password_reset tên URL sẽ gây ra một “quên mật khẩu của bạn?” Liên kết để xuất hiện trên các admin mặc định đăng nhập trang dưới mật khẩu hộp
1 cảm ơn! Nó cũng đi kèm với gửi email không? – Viet
Vâng, nó cũng gửi email, các id email có liên quan. –
lưu ý rằng nếu bạn đang sử dụng ứng dụng đăng ký django thì bạn chỉ cần bao gồm urls.py của django-đăng ký, tức là thêm 'url (r '^ accounts /', include ('registration.urls'))' vào own urls.py –