а вы его почитайте. Там всё просто и понятно. RaD дал ссылку на класс AbstractUser, посмотрите, как в нём username реализован.
Да, я это и сам знаю, так как туда пробельчик и приходится добавлять, с каждой новой версией.
Но можно же унаследоваться и от AbstractBaseUser, PermissionsMixin, а username по своему сделать со своей валидацией.
Если надумаю, делать отдельное приложение под это дело, уже тогда буду мучать тебя вопросами о том как своего юзера реализовывать :)
Спасибо за совет.