from __future__ import unicode_literals from django.core.exceptions import ObjectDoesNotExist from .models import Role from .settings import setting_default_roles def apply_default_roles(sender, instance, **kwargs): if kwargs.get('created', False): for default_role in setting_default_roles.value: if isinstance(default_role, Role): # If a model is passed, execute method default_role.add_member(instance) else: # If a role name is passed, lookup the corresponding model try: role = Role.objects.get(name=default_role) role.add_member(instance) except ObjectDoesNotExist: pass