Подтвердить что ты не робот

Пользователь Django get_all_permissions() пуст, пока установлен user_permissions

Я добавил некоторые разрешения пользователю через интерфейс администратора.

По какой-то причине все функции perm перестают работать, например

>>> user.get_all_permissions()
set([])

Но доступ к таблице напрямую, работает:

>>> user.user_permissions.all()
(list of permissions as expected)

Что может привести к ошибке "get_all_permissions" (и все функции perm, такие как has_perm())?

Спасибо

4b9b3361

Ответ 1

была та же проблема. Я предполагаю, что в какой-то момент вы использовали самодельную AUTHENTICATION_BACKEND? Большинство примеров в сети (ВКЛЮЧАЯ ДОКУМЕНТАЦИЮ DJANGO 1.0!) Не упоминают, что Backend также несут ответственность за обработку разрешений.

Однако, никакой biggie: В любом бэкэнд файле, в котором находится ваш код, включите этот импорт:

from django.contrib.auth.backends import ModelBackend

Затем убедитесь, что файл Backend, который вы написали, расширяет ModelBackend, например:

class EmailBackend(ModelBackend):

Должно быть хорошо.