Django Admin: показывать разные модели разным пользователям - PullRequest
0 голосов
/ 06 июля 2018

У меня есть два суперпользователя (user1 и user2) и две модели (ModelA и ModelB). На странице администратора я хочу показать только от ModelA до user1, поэтому user1 может редактировать только ModelA экземпляров, но не ModelB экземпляров. Точно так же я хочу, чтобы user2 мог редактировать только ModelB экземпляры. Есть ли способ добиться этого?

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Вот для чего <a href="https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.has_change_permission" rel="nofollow noreferrer">has_change_permission</a>. Вы можете предоставить разрешение на редактирование определенным пользователям.

class TestAdmin(admin.ModelAdmin):

    def has_change_permission(self, request):
        if request.user.username == 'xyz':
            # Feel free to return false to hide this TestAdmin to xyz user
            return False
        return True
0 голосов
/ 06 июля 2018

user1 и user2 не могут быть суперпользователями, если вам необходимо ограничить их доступ ModelA и ModelB соответственно. Поэтому, пожалуйста, сначала выполните рефакторинг.

Да, вы можете предоставить конкретным пользователям доступ к определенным моделям в интерфейсе администратора Django. Пожалуйста, посмотрите на Django документы: Разрешения и разрешения .

Существует также хорошее руководство по настройке разрешений и групп по адресу: https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Authentication

Дайте мне знать, если у вас возникли путаницы после чтения ресурсов.

Спасибо!

...