Opened 11 years ago
Closed 11 years ago
#20694 closed Uncategorized (wontfix)
Non-ascii unicode characters considered invalid in username
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | contrib.auth | Version: | 1.5 |
Severity: | Normal | Keywords: | |
Cc: | hirokiky@… | Triage Stage: | Unreviewed |
Has patch: | yes | Needs documentation: | yes |
Needs tests: | yes | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
In the admin's user change form, entering a new username with non-ascii unicode characters, e.g. é or ع, and saving the form results in an "Enter a valid username" error message.
The model field accepts such usernames programmatically, but editing a form with such a username prevents saving it unless the username is changed to remove all non-ascii characters.
This pull request fixes the problem, and allows saving the form with non-ascii unicode characters in the username field:
Change History (3)
comment:1 by , 11 years ago
Cc: | added |
---|---|
Needs documentation: | set |
Needs tests: | set |
comment:2 by , 11 years ago
I am unaware of any Django policies, but the non-ASCII username works fine as a slug in a URL for me even without this patch.
The user change form is the only piece I have encountered so far that does not work well with non-ASCII characters.
comment:3 by , 11 years ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
This would be considered a regression for anyone who relies on Django to validate that usernames are ASCII-only.
If "the model field accepts such usernames programmatically", that's just because validation is done in the form layer and not in the model layer.
A custom user model (introduced in 1.5) is the way to go.
I sometime use the username as some slugs on URL, like:
If the username allow to use Unicode, we will have to use Unicode in the URL.
Non-ASCII url is not allowed on Django, I remember so.
Either allowed or not, this patch should contain some tests and docs.