【问题标题】:Django- restrict users to access urlsDjango-限制用户访问网址
【发布时间】: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 抱歉布朗迟到了。我使用查询得到了一种解决方案,它运行良好。感谢您的回复:)
  • 谢谢两位)

标签: python django django-templates django-urls


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 2017-08-19
    • 2019-07-11
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多