这会破坏django工作中的每个对象权限吗?

时间:2010-03-13 07:20:55

标签: python django permissions database-permissions

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

Options.permissions
  

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

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

这是格式为2-tuples的列表或元组(permission_code,human_readable_permission_name)。

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

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

2 个答案:

答案 0 :(得分:0)

我认为在Meta课程的上下文中,您无法访问self
如果您要查找管理应用程序的解决方案,请阅读row level permissions

还有人说:

  

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

答案 1 :(得分:0)

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