Как создать пользовательские разрешения для администратора сайта 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"),
]
Если вы хотите управлять разрешением по умолчанию, следуйте этим объяснениям в документации и добавьте это к вашей модели.