gpt4 book ai didi

python - Django:什么是权限代号?

转载 作者:太空狗 更新时间:2023-10-30 00:54:48 25 4
gpt4 key购买 nike

我正在尝试在我的 Django 应用程序中设置权限装饰器。文档提到了它,但我找不到任何地方解释这个 codename 代表什么(模型字段?模型方法?权限方法?)。

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

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

最佳答案

您可以为 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 下。这意味着,您必须在同一应用的各个模型中拥有唯一的代号。

关于python - Django:什么是权限代号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34361681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com