پیکربندی مسیرها
سلام
بازیابی پسورد به چهار ویو احتیاج دارد.
-
- یک صفحه با یک فرم برای شروع پروسه
- یک صفحه که به کاربر نشان دهد بازیابی پسورد شروع شده و مثلاً لازم است اسپم ایمیل خود را هم چک کند.
- صفحه ای برای چک توکن ارسالشده توسط ایمیل
- صفحه ای که به کاربر خواهد گفت که بازیابی پسورد او با موفقیت انجام شده یا خیر
خبر خوب آن است که تمام این ویوها از قبل ساخته شده و نیاز به پیادهسازی هیچ موردی نیست. تنها کاری که باید انجام دهیم اضافهکردن مسیر به فایل urls.py و ساخت قالب ها و تمپلیتهای مناسب است. (کدهای زیر را به بخش آدرس اضافه کن.)
url(r'^reset/$', auth_views.PasswordResetView.as_view( template_name='password_reset.html', email_template_name='password_reset_email.html', subject_template_name='password_reset_subject.txt' ), name='password_reset'), url(r'^reset/done/$', auth_views.PasswordResetDoneView.as_view(template_name='password_reset_done.html'), name='password_reset_done'), url(r'^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', auth_views.PasswordResetConfirmView.as_view(template_name='password_reset_confirm.html'), name='password_reset_confirm'), url(r'^reset/complete/$', auth_views.PasswordResetCompleteView.as_view(template_name='password_reset_complete.html'), name='password_reset_complete'),
پارامتر template_name در ویوی بازیابی پسورد به صورت اختیاری است. اما استفاده از آن بهتر است. چون یک رابطۀ منطقی بین ویو و قالب ایجاد می کند.
داخل فولدر templates فایل های زیر را می سازیم.
- password_reset.html
- password_reset_email.html: این قالب مربوط به متنی است که به ایمیل کاربران ارسال می شود.
- password_reset_subject.txt: عنوان ایمیلی است که به کاربر ارسال می شود و بنابراین یک خطی می باشد.
- password_reset_done.html
- password_reset_confirm.html
- password_reset_complete.html
قبل از پیاده سازی قالب ها بیایید تست مربوط به آن را آماده کنیم. برای تست آن نیاز به کدزنی طولانی نیست. چون بخش زیادی از آن توسط جنگو از قبل تست شده است. داخل فولدر accounts/tests یک فایل جدید با نام test_view_password_reset.py می سازیم.
ترجمۀ اختصاصی توسط تمدن
مطلب بعدی: ویوی بازیابی پسورد
مطلب قبلی: Console Email Backend
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگو شرکت کنید؟نظری بدهید!