Почему user.user_permissions.all() возвращает пустой набор запросов в django, даже если пользователь имеет права по умолчанию?
Я хотел бы узнать причину того, что user.user_permissions.all() возвращает пустой набор запросов, даже если пользователь имеет разрешения по умолчанию. Я где-то читал, что user_permissions - это разрешения, которые определяются явно, поэтому я не совсем уверен, когда назначать эти разрешения явно, если у пользователя они уже определены. Для демонстрации:
from django.contrib.auth.models import Permission
from apps.user.models import User
user=User.objects.get(id=29)
print(user.is_superuser)
True
# as a superuser has 272 permissions
print(len(user.get_all_permissions()))
272
# no explicit assignment, returns an empty queryset
print(user.user_permissions.all())
<QuerySet []>
Теперь мой главный вопрос - если у пользователя определено данное разрешение, например
print(user.has_perm('add_company'))
True
есть ли польза от выполнения
#explicitly adding 'add_company' permission.
permission=Permission.objects.get(codename='add_company')
user.user_permissions.add(permission)
print(user.user_permissions.all())
<QuerySet [<Permission: main | company | Can add company>]>
Заранее спасибо.