HOWTO · Django
Django のパスワード変更
この説明では、ユーザーが Django の Web ページにログインした後にパスワードを変更するための Web ページを作成する方法について学習します。
このページの内容
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 に移動して、ユーザーがパスワードを変更するページにアクセスするためのボタンを作成します。
サーバーが稼働しており、ホームページからパスワードを変更します。ログイン後、ユーザーがパスワードを変更できることがわかります。