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】:UserPassesTestMixin
mixin 可用于此效果。基本上,编写一个实现test_func
函数的视图类。此函数可以访问self
,因此您可以读取 URL 和用户。如果 test_func 返回True
,则允许用户继续,否则传递给访问控制(如果配置,可能会重定向到登录表单)。
【讨论】:
以上是关于Django-限制用户访问网址的主要内容,如果未能解决你的问题,请参考以下文章
Django 用户登陆访问限制 @login_required
如何根据 Graphene/Django 上的用户类型限制模型上的字段访问?
使用 Laravel Guards 登录后,如何限制用户不访问登录页面?