Djangoでログインユーザーによって表示を変えたい
ログインしているユーザーによって表示を変えるためには、views.py で条件分岐を行い、それに基づいて適切なテンプレートをレンダリングすることが一般的です。以下はその基本的な例です。
まず、views.py でログインしているかどうかを判断し、それに基づいてテンプレートを選択します。
python
from django.shortcuts import render
from django.contrib.auth.decorators import login_required
@login_required
def dashboard(request):
# ログインしているユーザーに基づいて表示を変更
if request.user.is_staff:
template_name = 'dashboard_admin.html'
else:
template_name = 'dashboard_user.html'
return render(request, template_name)
上記の例では、dashboard ビューが @login_required デコレーターでデコレートされており、ログインしていない場合はログインページにリダイレクトされます。ログインしている場合は、ユーザーがスタッフ権限を持っているかどうかを確認し、それに基づいて異なるダッシュボードテンプレートを選択しています。
次に、urls.py でこのビューを呼び出すパスを設定します。
python
from django.urls import path
from .views import dashboard
urlpatterns = [
path('dashboard/', dashboard, name='dashboard'),
# 他のURLパターンも追加できます
]
最後に、テンプレートフォルダに dashboard_admin.html と dashboard_user.html を作成します。これらのテンプレートファイル内で、それぞれのユーザーに対応する表示を実装します。
dashboard_admin.html:
html
<!DOCTYPE html>
<html>
<head>
<title>Admin Dashboard</title>
</head>
<body>
<h1>Welcome, Admin!</h1>
<!-- 他のコンテンツを追加 -->
</body>
</html>
dashboard_user.html:
html
<!DOCTYPE html>
<html>
<head>
<title>User Dashboard</title>
</head>
<body>
<h1>Welcome, User!</h1>
<!-- 他のコンテンツを追加 -->
</body>
</html>
これで、dashboard ページにアクセスしたときに、ユーザーの権限に応じて異なるダッシュボードが表示されるようになります。

ディスカッション
コメント一覧
まだ、コメントがありません