def _create_update_tracking_event(instance):
    """
    Create a TrackingEvent and TrackedFieldModification for an UPDATE event.
    """
    event = _create_event(instance, UPDATE)
    for field in instance._tracked_fields:
        if not isinstance(instance._meta.get_field(field), ManyToManyField):
            try:
                if isinstance(instance._meta.get_field(field), ForeignKey):
                    # Compare pk
                    value = getattr(instance, '{0}_id'.format(field))
                else:
                    value = getattr(instance, field)
                if instance._original_fields[field] != value:
                    _create_tracked_field(event, instance, field)
            except TypeError:
                # Can't compare old and new value, should be different.
                _create_tracked_field(event, instance, field)
Create a TrackingEvent and TrackedFieldModification for an UPDATE event.