デフォルトのユーザー モデルと 1 対 1 のフィールドを持つ Student モデルがあります。
学生IDが整数値であるexample.com/studentidのようなURLがあります。
URLの学生IDがログインした人の学生IDと等しいかどうかを確認する方法を知りたいですか?
これは、ログインした人が、URL の StudentID の値をランダムに変更した場合でも、自分の個人プロファイルのみを表示でき、他の学生のプロファイルを表示できないようにするためです。
デフォルトのユーザー モデルと 1 対 1 のフィールドを持つ Student モデルがあります。
学生IDが整数値であるexample.com/studentidのようなURLがあります。
URLの学生IDがログインした人の学生IDと等しいかどうかを確認する方法を知りたいですか?
これは、ログインした人が、URL の StudentID の値をランダムに変更した場合でも、自分の個人プロファイルのみを表示でき、他の学生のプロファイルを表示できないようにするためです。
簡単です:
from django.shortcuts import get_object_or_404
student = get_object_or_404(Student, pk=student_id, user__id=request.user.id)
404
ユーザーが他のユーザー プロファイルまたはアクションにアクセスしようとすると、例外が発生します。
示唆されているようTimmy O'Mahony
に、URL で学生 ID を開示する必要さえありません (必要でない場合)。現在ログインしているユーザーを取得しrequest.user
、それを使用して学生のプロファイルを取得します。
def my_student_view(request):
user = request.user
student = Student.objects.get(user__id=user.id)