Django のパスワード変更

Salman Mehmood 2024年2月15日
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 を作成します

テンプレートを作成しますが、どこかに移動する前に、メインプロジェクトの urlpatterns へのユーザーのパスを urls.py ファイルに含める必要があります。ユーザーの movies の下に新しいパスを作成しましょう。namespace はアプリと一致する必要があります。コードを書いたら、それを保存します。

urls.py ファイルの urlpatterns

これで、ユーザーのアプリに戻ることができます。ここで、templates フォルダーを作成しましょう。templates 内に、users という別のフォルダーを作成します。users フォルダーで、views.py ファイル内に定義した 2つの HTML ファイルを作成する必要があります。

まず、password-change.html ファイルから作業を始めます。まず、base.html を継承した後、block titleblock content を設定し、フォームで構成されることになります。フォームのアクションを空欄にし、メソッドを POST とすることで、POST リクエストを処理することになります。

フォーム内に csrf_token を配置する必要があります。これにより、リクエストを送信できるようになります。ボタンを作成し、このタイプを送信のままにして、クラスを追加することで緑色のボタンにします。

ブロックタイトルとブロックコンテンツ

password-reset-done.html で作業します。ここでも、base.html ファイルから継承する必要があります。この後、アプローチは同じになりますが、構文は少し異なります。

次に、href 属性を記述し、ホームビューのパス名を指定して、ユーザーがこのボタンを押して連絡できるようにします。

href 属性

最後に、home.html に移動して、ユーザーがパスワードを変更するページにアクセスするためのボタンを作成します。

パスワード変更ボタン

サーバーが稼働しており、ホームページからパスワードを変更します。ログイン後、ユーザーがパスワードを変更できることがわかります。

パスワード出力の変更

著者: Salman Mehmood
Salman Mehmood avatar Salman Mehmood avatar

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