0

デフォルトのユーザー モデルと 1 対 1 のフィールドを持つ Student モデルがあります。

学生IDが整数値であるexample.com/studentidのようなURLがあります。

URLの学生IDがログインした人の学生IDと等しいかどうかを確認する方法を知りたいですか?

これは、ログインした人が、URL の StudentID の値をランダムに変更した場合でも、自分の個人プロファイルのみを表示でき、他の学生のプロファイルを表示できないようにするためです。

4

1 に答える 1

2

簡単です:

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)
于 2013-06-19T09:27:39.643 に答える