2016-07-05 56 views
0

我正在学习Django教程。在它的官方文档中,例如提供了如下代码:困惑于Django的客户权限

class Task(models.Model): 
    ... 
    class Meta: 
     permissions = (
      ("view_task", "Can see available tasks"), 
      ("change_task_status", "Can change the status of tasks"), 
      ("close_task", "Can remove a task by setting its status as closed"), 
     ) 

这样,三种不同的类型与任务相关的模型自定义权限的创建。如果用户想要获得访问此模型的权限,那么用户如何获得访问任务模型的权限?我需要这三个权限进入用户模型吗?

+0

接下来发生了什么?你设法把它整理出来吗? – e4c5

回答

1

这在django文档custom permissions中有解释。

您的代码负责检查这些权限时 一个用户试图访问由 应用程序提供的功能的价值(查看任务,改变任务的状态,收盘 任务。)持续的上面的例子,下面的检查,如果用户 可以查看任务:

user.has_perm('app.view_task')

如何对这些权限授予或如何将这些权限检查是完全取决于你。例如,您可以选择通过监听信号来注册这些权限。或者您可以登录到管理员区域并手动分配权限,或者您可以使用小脚本为许多用户授予权限等等。