我正在创建一个app.it有很多字段来存储关于班级和学生的数据。
urls.py
url(r'^class/(?p<title>[-\w]+)/(?p<id>[\d]+)/',views.list,name ='list'),
基本上一个user
(教师)可以创建多个class_room
。每个class_room
在该课程中有一个title
和多个students
。
问题是:
每个class_room
都有唯一的url
。例如(mywebsite.com/science/88/)此链接仅供以下学生访问,而不是匿名用户。如果任何非跟随学生尝试一些随机url
这样他们可以看到页面,这是一个循环漏洞( mywebsite.com/maths/2500 /).
如何限制学生访问他未关注的网页?
答案 0 :(得分:2)
UserPassesTestMixin
mixin可用于此效果。基本上,编写一个实现test_func
函数的View类。此功能可以访问self
,因此您可以阅读URL和用户。如果test_func返回True
,则允许用户继续,否则传递给访问控制(如果配置,可能会重定向到登录表单)。