【发布时间】:2014-01-21 00:03:18
【问题描述】:
我不确定这是否可能,但有没有办法写出类似的东西
@group_required('group_id')
def myview(request, group_id):
.....
我在哪里查看参数 group_id 的值并将此视图的访问权限仅限于该组中的人?
我知道可以创建一个装饰器来检查某个特定组的成员身份
@group_required('admin')
def myview(request):
....
但是假设我想要一个只有特定组内的人才能访问的视图,这由 url 决定。
例如
/group/1
/group/2
每个人都应该拥有权限,以便只有组#X 的成员才能看到该页面。我可以在视图中轻松编写此功能
group = get group
if user not in group
raise 404
但这种逻辑一直在重复。装饰器似乎是一种很有前途的方法,但似乎范围倒退了。是否有另一种首选方式来处理此类权限?
谢谢!
【问题讨论】:
-
如果您使用的是 CBV,请检查 django-braces:django-braces.readthedocs.org/en/latest/index.html
-
我们项目的一部分使用了 CBV,但我想知道在基于函数的视图上是否可行。我也不太清楚如何使用 CBV 完成此操作,但我会再看看
-
看起来好像基于组的权限限制了基于
specific组的访问——而不是组是通过视图 url 参数进入的变量
标签: django permissions decorator