2012-05-30 5 views
1

Другие, чем auth_user, я никогда не использовал auth_group, auth_group_permissions, auth_permission, auth_user_user_permissions и auth_user_user_permissions. Каковы конкретные применения для каждой из этих моделей? Общеизвестно, что в этом нет необходимости? Если да, то какой лучший способ избавиться от них (делать прямой DROP TABLE или на уровне django)? Будет ли недостаток в их устранении?Использование различных `auth` моделей

ответ

1

Я бы рекомендовал прочитать User authentication section in the Django documentation. Он описывает компоненту системы Идента как:

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

Простейшие использование разрешений это контролировать действия определенного пользователь может принимать в Django Admin site. Вы также можете использовать разрешения для ограничения доступа к своим собственным представлениям с помощью декоратора django.contrib.auth.decorators.permission_required.

Если это объединено с группами, вы можете легко назначить одинаковые разрешения для всей группы пользователей.

В других таблицах базы данных, которые вы упоминаете (auth_group_permissions и т. Д.), Хранятся отношения между пользователями и разрешениями или группами и разрешениями.

Хотя вы не можете использовать эти части системы аутентификации напрямую, вы почти наверняка используете другой код от django.contrib.auth, который опирается на них. Если вы используете приложение, которое вы не пишете (независимо от того, является ли оно частью Django или нет), вероятно, это плохая идея отказаться от таблиц базы данных, которые создает приложение.

Смежные вопросы