Django-限制用户访问网址

Posted

技术标签:

【中文标题】Django-限制用户访问网址【英文标题】:Django- restrict users to access urls 【发布时间】:2018-01-16 05:21:03 【问题描述】:

我正在创建一个应用程序。它有许多字段来存储有关班级和学生的数据。

urls.py

url(r'^class/(?p<title>[-\w]+)/(?p<id>[\d]+)/',views.list,name ='list'),

基本上一个user(Teacher) 可以创建许多class_room。每个class_room 有一个title 和许多students 跟随该班级。

问题是:

每个class_room 都有唯一的url。例如(mywebsite.com/science/88/)此链接仅供关注的学生访问,不适用于匿名用户。如果任何非关注学生尝试一些随机的url 这样他们可以看到页面(mywebsite. com/maths/2500/)。

如何限制学生访问他未关注的页面?

【问题讨论】:

请出示您的查看代码 @Bear Brown 抱歉布朗迟到了。我使用查询得到了一种解决方案,它运行良好。感谢您的回复:) 谢谢两位) 【参考方案1】:

UserPassesTestMixinmixin 可用于此效果。基本上,编写一个实现test_func函数的视图类。此函数可以访问self,因此您可以读取 URL 和用户。如果 test_func 返回True,则允许用户继续,否则传递给访问控制(如果配置,可能会重定向到登录表单)。

【讨论】:

以上是关于Django-限制用户访问网址的主要内容,如果未能解决你的问题,请参考以下文章