def re_add_users_following_before_delete(instance): # First, let's see if this page existed before. if instance.versions.all().count() > 2: # Now let's get the version before it was deleted before_delete = instance.versions.all()[2] past_follows = Follow.versions.filter(target_page__id=before_delete.id) # Now, re-follow. for follow in follows_before_cascade(past_follows): f = Follow(user=follow.user, target_page=instance) # For versioning purposes, let's keep the same pk # we had before delete. f.id = follow.id # We set TYPE_REVERTED here because it's slightly # more accurate than the (default) TYPE_ADDED. f._history_type = TYPE_REVERTED f.save()