django auth ユーザーは抽象ユーザー クラス (django.contrib.auth.models) に基づいています。バインドされたフォームは有効かもしれませんが、ユーザー オブジェクトの検証を保存しようとすると失敗します。
ユーザー名に関する django.contrib.auth.models のソースを見てください。
class AbstractUser(AbstractBaseUser, PermissionsMixin):
"""
An abstract base class implementing a fully featured User model with
admin-compliant permissions.
Username, password and email are required. Other fields are optional.
"""
username = models.CharField(_('username'), max_length=30, unique=True,
help_text=_('Required. 30 characters or fewer. Letters, digits and '
'@/./+/-/_ only.'),
validators=[
validators.RegexValidator(r'^[\w.@+-]+$', _('Enter a valid username.'), 'invalid')
])
これがそれに光を当てることを願っています。