Как проверить, есть ли у пользователя хотя бы одно разрешение в Django - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь показать конечному пользователю, что ему не назначено разрешение.

Как я могу сделать это с помощью шаблонов Django?

Ответы [ 4 ]

0 голосов
/ 04 августа 2020

У меня это сработало

{% not perms.count %}
    display message
{% endif %}
0 голосов
/ 04 августа 2020

Разрешения текущего авторизованного пользователя хранятся в переменной шаблона {{ perms }}, подробнее здесь

Чтобы проверить, есть ли у вошедшего в систему пользователя какие-либо разрешения в приложении foo, просто используйте:

{% if perms.foo %}

Требования:

django.contrib.auth.context_processors.auth включен контекстный процессор

0 голосов
/ 04 августа 2020

Если вы ищете разрешения в шаблонах, будет достаточно следующего кода:

{% if perms.app_label.can_do_something %}
<form here>
{% endif %}

Разрешения текущего пользователя, вошедшего в систему, хранятся в переменной шаблона {{ perms }}. Это экземпляр django.contrib.auth.context_processors.PermWrapper, который представляет собой шаблонный прокси-сервер разрешений.

Подробнее https://docs.djangoproject.com/en/dev/topics/auth/default/#permissions

0 голосов
/ 03 августа 2020

Вы можете сделать это с помощью простой if not проверки групп разрешений.

{% if not user.groups.count %}
    Hey User, you do not have permissions.
{% endif %}
...