Opened 8 years ago
Closed 8 years ago
#26639 closed New feature (wontfix)
Default to ASCIIUsernameValidator (instead of UnicodeUsernameValidator) in Django 1.10
Reported by: | David | Owned by: | nobody |
---|---|---|---|
Component: | contrib.auth | Version: | 1.9 |
Severity: | Normal | Keywords: | users, username, unicode, ascii |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Would Django devs please consider using ASCIIUsernameValidator as the default, and leave UnicodeUsernameValidator as an opt-in option?
I don't have the experience in this industry to provide a solid list of technical reasons or arguments for why this should be done, but perhaps I can try to provide a reason for Django usability from a user standpoint:
A Django user who is trying to save time and get a product out the door isn't going to focus on finer details such as Unicode usernames, and will be in for a shock when he finds out a bunch of his users have registered themselves with Egyptian hieroglyphics. He may be very frustrated, eventually figuring out that he must subclass the User model and set username_validator = ASCIIUsernameValidator()
to get the functionality he expected. And what is he to do with the existing Unicode users, delete all their accounts?
Whereas a technologically forward user might be friendlier towards Unicode usernames, and would be well-informed on these capabilities within Django. Furthermore, the technologically forward user will be more likely to already have a custom user model, and won't find it cumbersome to explicitly enable Unicode usernames. Enabling Unicode usernames isn't destructive like disabling it would be (no need to figure out what to do with the existing users offending the validation), so users can simply start using it immediately.
Thanks!
Please read the django-developers discussion and add your view there if you disagree with the conclusions. Thanks.