如何为 django 管理站点创建自定义权限

问题描述 投票:0回答:2

默认情况下,当我创建模型时,Django 会授予如下权限:

add/change/delete/view 

如果我向特定用户授予上述任何权限,则该用户可以查看该模型中的所有对象。但我只想向他们展示与外键链接的对象。

我们来说吧,

我有一个书籍模型

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey(
        User, on_delete=models.CASCADE
    )

如果我想授予作者权限,他们只能从 Django 管理员查看链接的书籍。

我怎样才能做到这一点?

python django django-models django-admin
2个回答
1
投票

一切都发生在 Django Meta 类中。只需遵循 Django 文档 所说的即可:

class Meta:
        permissions = [
            ("change_task_status", "Can change the status of tasks"),
            ("close_task", "Can remove a task by setting its status as closed"),
        ]

如果您想操纵默认权限,请遵循这些文档说明并将其添加到您的模型中。


© www.soinside.com 2019 - 2024. All rights reserved.