Почему 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>]> 

Заранее спасибо.

Вернуться на верх