Кастомная система для разрешений с django - PullRequest
0 голосов
/ 15 января 2020

Я ищу способ создать собственную систему групп и разрешений в Django. Я знаю, что Django по умолчанию приносит систему групп и разрешений, но в моем проекте из-за требований учителя мне пришлось создавать свои собственные модели.

Вы можете создавать новые группы и добавлять разрешения для этих групп, но поскольку они не являются моделями по умолчанию django, я не могу использовать функции уровня шаблона, такие как, например, «perms.car.add_car». Что я имею в виду под этим? Что на уровне шаблона, я не знаю, как проверить, есть ли у пользователя разрешение. Надеюсь, я хорошо себя объяснил, жду ваших ответов и заранее благодарю!

1 Ответ

0 голосов
/ 15 января 2020

Вы должны иметь доступ к атрибутам текущего пользователя из шаблонов с помощью {{user.some_attribute}}.

. Вы можете расширить класс django.contrib.auth.models.User по умолчанию с помощью отношения один-к-одному с классом CustomUser, который вы создайте и получите доступ к нему из шаблона, как описано выше, что означает:

{{ user.one_to_one_custom_user_field.some_attribute }}

Для получения дополнительной информации о расширении User посмотрите документы .

В этом CustomUser добавление класса по своему усмотрению:

  • функции для взаимодействия с созданными вами классами групп пользователей и проверки, присутствует ли в них текущий пользователь или имеет права доступа
  • помечать переменные (или любые другие индикативные атрибуты) для указания групп и разрешений пользователя.

Используйте один из этих параметров в качестве some_attribute, доступного из шаблона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...