Instead of having the conditional in the model, token_pre_save, it should be added to generate_token() function.