0

我有一个学生模型,它具有与默认用户模型一对一的字段。

我有一个像 example.com/studentid 这样的 url,其中学生 id 是一个整数值。

我想知道如何检查url中的studentid是否等于登录者的studentid?

这是为了确保登录的人只能查看自己的个人资料,而不能查看任何其他学生的资料,即使他随机更改了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 回答