繁体   English   中英

django中针对每个对象的权限的这种破解方法行得通吗?

[英]Would this hack for per-object permissions in django work?

根据文档,类可以具有meta选项权限,如下所述:

选项权限

创建此对象时可进入权限表的额外权限。 将为具有管理员设置的每个对象自动创建添加,删除和更改权限。 此示例指定了一个额外的权限can_deliver_pizzas:

 permissions = (("can_deliver_pizzas", "Can deliver pizzas"),) 

这是2元组的列表或元组,格式为(permission_code,human_可读_permission_name)。

是否可以通过以下方式在运行时定义权限:

 permissions = (("can_access_%s" % self.pk, / "Has access to object %s of type %s" % (self.pk,self.__name__)),) 

我认为在Meta类的上下文中,您无法访问self
如果您正在寻找管理应用程序的解决方案,请阅读有关行级权限的内容

也有说:

对于面向公众(即非管理员)的视图,您当然可以自由地实现应用程序所需的任何形式的权限检查逻辑。

不,出于多种原因,这行不通。 首先,正如费利克斯(Felix)指出的那样,您此时无法进入self 其次,正如您引用的文档所述,这是要输入到权限表中的项目的列表-换句话说,这些是实际的数据库行,由manage.py syncdb创建。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM