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-限制用户访问网址的主要内容,如果未能解决你的问题,请参考以下文章

Django 用户登陆访问限制 @login_required

如何根据 Graphene/Django 上的用户类型限制模型上的字段访问?

使用 Laravel Guards 登录后,如何限制用户不访问登录页面?

使用Django自带的登录访问限制login_required

在 Django 中限制对私有文件下载的访问

如何使编外用户访问 Django 管理站点?