Django-限制用户访问url
Django- restrict users to access urls
我正在创建一个 app.it has manytomany 字段来存储关于 class 和学生的数据。
urls.py
url(r'^class/(?p<title>[-\w]+)/(?p<id>[\d]+)/',views.list,name ='list'),
基本上一个user
(老师)可以创造很多class_room
。每个class_room
有一个title
,然后有很多students
[=42] =].
问题是:
每个 class_room
都有唯一的 url
。例如(mywebsite.com/science/88/)这个 link 仅供关注的学生访问,而不是匿名的 user.This 如果任何非关注学生尝试一些随机的 url
是一个漏洞 url
他们可以看到页面 (mywebsite.com/maths/2500/).
如何限制学生访问他未关注的页面?
UserPassesTestMixin
mixin 可以用来达到这个效果。基本上,编写一个实现 test_func
功能的视图 Class。此函数可以访问 self
,因此您可以读取 URL 和用户。如果 test_func returns True
,则允许用户继续,否则将传递给访问控制(如果已配置,可能会重定向到登录表单)。
我正在创建一个 app.it has manytomany 字段来存储关于 class 和学生的数据。
urls.py
url(r'^class/(?p<title>[-\w]+)/(?p<id>[\d]+)/',views.list,name ='list'),
基本上一个user
(老师)可以创造很多class_room
。每个class_room
有一个title
,然后有很多students
[=42] =].
问题是:
每个 class_room
都有唯一的 url
。例如(mywebsite.com/science/88/)这个 link 仅供关注的学生访问,而不是匿名的 user.This 如果任何非关注学生尝试一些随机的 url
是一个漏洞 url
他们可以看到页面 (mywebsite.com/maths/2500/).
如何限制学生访问他未关注的页面?
UserPassesTestMixin
mixin 可以用来达到这个效果。基本上,编写一个实现 test_func
功能的视图 Class。此函数可以访问 self
,因此您可以读取 URL 和用户。如果 test_func returns True
,则允许用户继续,否则将传递给访问控制(如果已配置,可能会重定向到登录表单)。