Как создать пользовательские разрешения для администратора сайта django

По умолчанию, когда я создаю модель, Django дает разрешения типа

add/change/delete/view 

Если я даю любое из вышеперечисленных разрешений определенному пользователю, то этот пользователь может просматривать все объекты из этой модели. Но я хочу показать им только объекты, связанные с внешними ключами.

Let's Say,

У меня есть модель книги

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

Если я хочу дать авторам разрешение, они смогут просматривать свои связанные книги только из админки Django.

Как я могу это сделать?

Все происходит в классе Django Meta. Просто следуйте тому, что написано в Django Documantation:

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

Если вы хотите управлять разрешением по умолчанию, следуйте этим объяснениям в документации и добавьте это к вашей модели.

Вернуться на верх