Если вы хотите резко ускориться, почему бы не попросить базу данных вытянуть только те объекты, которые вам интересны,
content_type = ContentType.objects.get_for_model(Video)
perm = Permissions.objects.get(codename='view_video'.split('.')[-1])
objs = set(
UserObjectPermissions.objects.filter(user=user, permission=perm, content_type=content_type)
)
# and if you want to include groups
objs.update(
set(
GroupObjectPermissions.objects.filter(group__user=user, permission=perm, content_type=content_type)
)
)
Это должно дать вам все пользовательские объекты, на которые у пользователя есть разрешение.и их пользователь и группа.