困惑于Django客户的许可

时间:2016-07-05 07:39:58

标签: 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"),
        )

通过执行此操作,将创建与任务模型关联的三种不同类型的自定义权限。如果用户想要获得访问此模型的任何权限,那么用户如何获得访问任务模型的权限?我是否需要将这三个权限纳入用户模型?

1 个答案:

答案 0 :(得分:1)

custom permissions的django文档对此进行了解释。

  

您的代码负责检查这些权限的值   用户正试图访问该提供的功能   应用程序(查看任务,更改任务状态,关闭   继续上面的例子,下面检查一个用户   可以查看任务:

     

user.has_perm('app.view_task')

如何授予这些权限或如何检查这些权限完全取决于您。例如,您可以通过收听信号选择在注册时将这些权限设为签名。或者您可以登录管理区域并手动分配权限,也可以使用小脚本将权限分配给许多用户等等。