code: 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()