Как правильно обращаться к разрешениям? - PullRequest
3 голосов
/ 02 марта 2009

Я добавил новую модель с одним разрешением, и теперь мне нужно добавить это разрешение нескольким пользователям на производственном компьютере после развертывания кода и запуска syncdb для нового приложения. Я не нашел правильный способ сделать это. Документы auth упоминают User.user_permissions.add (разрешение), но никогда не говорят мне, что такое «разрешение» или лучший способ его получить.

1 Ответ

4 голосов
/ 02 марта 2009

Permission (который находится в django.contrib.auth.models) является объектом базы данных. Вы сможете увидеть их все с Permission.objects.all(). Они создаются автоматически с помощью сигнала после синхронизации для каждой модели (и , поскольку в документах упоминается , вы также можете определить свою собственную).

Чтобы назначить разрешения пользователю, вам сначала нужно получить объекты Permission (используя Permission.objects.get(*args)), а затем вы можете добавить его пользователю, указав User.user_permissions.add(permission), как вы упомянули.

В качестве альтернативы, и более простой способ, если вы можете сделать это, это просто использовать сайт администратора Django. На странице подробностей для каждого пользователя есть раздел, касающийся разрешений. Я предполагаю, что вы не используете эти разрешения за пределами администратора, так что это единственная область, на которую они будут влиять. Если вы хотите, чтобы все ваши пользователи имели все разрешения, вы можете сделать их суперпользователями, установив для каждого пользователя флаг is_superuser на True.

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