当前位置:  开发笔记 > 编程语言 > 正文

Django:什么是权限代号?

如何解决《Django:什么是权限代号?》经验,为你挑选了1个好方法。

我正在尝试在我的Django应用程序中设置权限装饰器.文档提到它,我无处可寻找解释它codename代表什么(模型字段?模型方法?权限方法?).

什么是代号,我在哪里可以设置代号?

https://docs.djangoproject.com/en/1.9/topics/auth/default/#the-permission-required-decorator



1> Rohit Jain..:

您可以向Meta类下的任何模型添加自定义权限.这些权限名称被调用codename.它是这样的:

class Dish(models.Model):
    name = models.CharField()
    class Meta:
        permissions = (
            ('can_approve_dish', "Can approve Dish publication"),
            ('can_delete_dish', "Can Delete Dish")
        )

这里can_approve_dish代号.现在,要对Dish执行任何操作,您可以检查以下权限:

# Assuming Dish model is under app named - `'app'`
if user.has_perm('app.can_delete_dish'):
    dish.delete()

管理站点上将提供这些权限,以便在迁移后分配给用户.因此,如果您尚未can_delete_dish向用户分配权限,则他将无法删除该菜肴.

如果您在名为 - 的应用程序下的多个模型上添加了不同的权限app,则所有这些权限都将在名称下app.这意味着,您必须在同一个应用程序中的模型之间拥有唯一的代号.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有