检查django中的用户凭据

时间:2013-06-19 09:23:27

标签: python django django-models django-views

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

我有一个像example.com/studentid的网址,其中学生ID是一个整数值。

我想知道如何检查网址中的studentid是否等于已登录用户的学历?

这是为了确保登录的人只能查看他自己的个人资料而不是任何其他学生资料,即使他随机更改了网址中的studentid值。

1 个答案:

答案 0 :(得分: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建议您甚至不需要在网址中披露学生ID(如果没有必要)。只需获取request.user中当前登录的用户,然后使用该用户获取学生资料:

def my_student_view(request):
    user = request.user
    student = Student.objects.get(user__id=user.id)