def m2m_callback(sender, instance, action, reverse, model, pk_set, using, **kwargs):
    if validate_instance(instance) and settings.AUTOMATED_LOGGING['to_database']:
        if action in ["post_add", 'post_remove']:
            modification = [model.objects.get(pk=x) for x in pk_set]
            if 'al_chl' in instance.__dict__.keys() and instance.al_chl:
                changelog = instance.al_chl
            else:
                changelog = ModelChangelog()
                changelog.information = ModelObject()
                changelog.information.value = repr(instance)
                changelog.information.type = ContentType.objects.get_for_model(instance)
                changelog.information.save()
                changelog.save()
            for f in modification:
                obj = ModelObject()
                obj.value = repr(f)
                try:
                    obj.type = ContentType.objects.get_for_model(f)
                except Exception:
                    logger = logging.getLogger(__name__)
                    logger.debug('Could not determin the type of the modification.')
                obj.save()
                if action == 'post_add':
                    changelog.inserted.add(obj)
                else:
                    changelog.removed.add(obj)
            changelog.save()
            instance.al_chl = changelog
            if 'al_evt' in instance.__dict__.keys():
                target = instance.al_evt
            else:
                target = Model()
                target.user = get_current_user()
                target.action = 2 if action == 'post_add' else 2
                target.save()
                ct = ContentType.objects.get_for_model(instance).app_label
                target.application = Application.objects.get_or_create(name=ct)[0]
                target.information = ModelObject()
                target.information.value = repr(instance)
                target.information.type = ContentType.objects.get_for_model(instance)
                target.information.save()
                instance.al_evt = target
            target.modification = changelog
            target.save()