se o propósito do generateusername é gerá-lo, porque é que lhe tiras a responsabilidade de dar o default "first_name last_name"?
até porque nesse placeholder vão faltar as limpezas necessárias (acentos e afins)