Djangoでユーザーごとにページの中で表示を変えたい。
ユーザーごとにページの中で表示を変えるためには、テンプレート内でユーザーの情報を取得し、それに基づいて条件分岐を行います。以下はその基本的な例です。
まず、views.py でログインしているユーザーの情報を取得し、それをテンプレートに渡します。
python
from django.shortcuts import render
from django.contrib.auth.decorators import login_required
@login_required
def user_profile(request):
# ユーザー情報を取得
user = request.user
context = {
'user': user,
}
return render(request, 'user_profile.html', context)
上記の例では、user_profile ビューがログインしているユーザーの情報を context にセットしています。
次に、user_profile.html テンプレート内でユーザー情報を元に表示を変更します。
html
<!DOCTYPE html>
<html>
<head>
<title>User Profile</title>
</head>
<body>
<h1>Welcome, {{ user.username }}!</h1>
{% if user.is_staff %}
<p>You are an admin.</p>
{% else %}
<p>You are a regular user.</p>
{% endif %}
<!-- 他のユーザーに依存したコンテンツを追加 -->
</body>
</html>
上記の例では、{{ user.username }} を使用してユーザーのユーザー名を表示し、{% if user.is_staff %} でユーザーがスタッフ権限を持っているかどうかを確認しています。これに基づいて異なるコンテンツが表示されます。
これで、user_profile ページにアクセスしたときに、ログインしているユーザーの情報に応じて表示が変わるようになります。必要に応じて他のユーザーに依存した条件分岐を追加してください。

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