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

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

От некоторой причины весь перманент функционирует сбой, например,

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

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

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

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

Спасибо

25
задан Ivan Kharlamov 6 November 2011 в 15:15
поделиться

1 ответ

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

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

from django.contrib.auth.backends import ModelBackend

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

class EmailBackend(ModelBackend):

Должно быть все в порядке.

44
ответ дан 28 November 2019 в 21:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: