Django のパスワード変更
Django Web ページにログオンした後、ユーザーがパスワードを変更するための Web ページを作成する方法を学習します。
Django でユーザがパスワードを変更するための Web ページを作成する
たとえば、Django にプロジェクトがあり、ユーザーのアプリケーションがあるこのプロジェクトに取り組んでいます。このアプリでは、views.py
ファイルが見つかり、2つの必要なビューをインポートする必要があります。
そのうちの 1つは PasswordChangeView
と呼ばれ、パスワードを変更できます。PasswordResetDoneView
は、パスワードがリセットされたことを確認します。
次に、PasswordChangeView
から継承する MyPasswordChangeView
というクラスを定義する必要があります。このクラス内で、template_name
変数を宣言し、ユーザーがパスワードを変更するテンプレート URL を格納します。
success_url
変数に、reverse_lazy()
変数を配置する必要があります。コードの下に、MyPasswordResetDoneView
という別のクラスを作成し、それを PasswordResetDoneView
から継承する必要があります。
このクラス内で template_name
変数のみを宣言し、テンプレートのパスをこの template_name
変数に格納します。次に、それを保存して、これらのビューを urls.py
ファイルに登録する必要があります。
views.py
ファイル:
from django.shortcuts import render
from django.urls import reverse_lazy
from django.contrib.auth.views import PasswordChangeView, PasswordResetDoneView
class MyPasswordChangeView(PasswordChangeView):
template_name = "users/password-change.html"
success_url = reverse_lazy("users:password-change-done-view")
class MyPasswordResetDoneView(PasswordResetDoneView):
template_name = "users/password-reset-done.html"
ユーザーのアプリケーション内に urls.py
ファイルを作成してから、作成したファイルにビューをインポートします。
次に、アプリ名である users
と等しい app_name
という変数を作成する必要があります。線の下に、ビューを URL と統合する urlpatterns
リストを作成します。
テンプレートを作成しますが、どこかに移動する前に、メインプロジェクトの urlpatterns
へのユーザーのパスを urls.py
ファイルに含める必要があります。ユーザーの movies
の下に新しいパスを作成しましょう。namespace
はアプリと一致する必要があります。コードを書いたら、それを保存します。
これで、ユーザーのアプリに戻ることができます。ここで、templates
フォルダーを作成しましょう。templates
内に、users
という別のフォルダーを作成します。users
フォルダーで、views.py
ファイル内に定義した 2つの HTML ファイルを作成する必要があります。
まず、password-change.html
ファイルから作業を始めます。まず、base.html
を継承した後、block title
と block content
を設定し、フォームで構成されることになります。フォームのアクションを空欄にし、メソッドを POST
とすることで、POST
リクエストを処理することになります。
フォーム内に csrf_token
を配置する必要があります。これにより、リクエストを送信できるようになります。ボタンを作成し、このタイプを送信
のままにして、クラスを追加することで緑色のボタンにします。
password-reset-done.html
で作業します。ここでも、base.html
ファイルから継承する必要があります。この後、アプローチは同じになりますが、構文は少し異なります。
次に、href
属性を記述し、ホームビューのパス名を指定して、ユーザーがこのボタンを押して連絡できるようにします。
最後に、home.html
に移動して、ユーザーがパスワードを変更するページにアクセスするためのボタンを作成します。
サーバーが稼働しており、ホームページからパスワードを変更します。ログイン後、ユーザーがパスワードを変更できることがわかります。
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn