Django | Djangoでログインユーザ情報を取得/表示してみる
- 2023.08.19
- Django
みなさん、こんにちは!
前回の続きとして、ログイン後のTOP画面にユーザ情報を表示するように設定します。
ユーザ情報はどこに格納されるのか?
ログイン後のユーザ情報は「request」オブジェクトに格納されます。
実際に取り出してみます。
login.htmlを以下のように編集します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ログイン成功</title>
</head>
<body>
<p>こんにちは!{{request.user}}さん</p>
<p>ログイン成功しました</p>
<hr>
<a href="{% url 'logout' %}"><p>ログアウト</p></a>
</body>
</html>
結果は以下の通りです。
今回は「admin」というユーザでログインしたため、以下のような表記になりました。
管理者かスタッフか一般ユーザか?
例えば管理者か否かを見分けることも可能です。
request.user.is_superuser が Trueの場合は「管理者」
request.user.is_staff がTrueの場合は「スタッフ」
いずれも当てはまらない場合は「一般ユーザ」
となります。
管理者画面
管理者画面のユーザ設定画面にて、パーミッションを変更することができます。
コード
判別するためのコードは以下の通りです。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ログイン成功</title>
</head>
<body>
<p>こんにちは!{{request.user}}さん</p>
<p>あなたは
{% if request.user.is_superuser %}
管理者
{% elif request.user.is_staff %}
スタッフ
{% else %}
一般ユーザ
{% endif %}
です。
</p>
<p>ログイン成功しました</p>
<hr>
<a href="{% url 'logout' %}"><p>ログアウト</p></a>
</body>
</html>
動作検証
検証結果です。今回は
admin:スーパーユーザ、staff_user:スタッフ、ippan_user:一般 としています。
・スーパーユーザ「admin」の場合
・スタッフ「staff_user」の場合
・一般「ippan_user」の場合
以上のようにして、権限毎に画面制御を行うことができます。
今回は以上です。
ではまた!
本日のAmazonおすすめ_Top10
2024-10-14 12:34:41時点
-
前の記事
Django | ログインフォーム ~Djangoでログアウトを実装してみる 2023.08.19
-
次の記事
Django | 件名、詳細の入力フォームを作成してみる 2023.08.20