[英]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.