diff options
| author | Sam Reynolds <sam@smjr.co.uk> | 2019-09-17 15:21:50 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-09-18 11:37:38 +0200 |
| commit | 6c9778a58e4f680db180d4cc9dc5639d2ec1b40c (patch) | |
| tree | 88be4496e9004a3e638a04840c61d22c9d09d69e | |
| parent | b1d6b35e146aea83b171c1b921178bbaae2795ed (diff) | |
Fixed #30776 -- Restored max length validation on AuthenticationForm.UsernameField.
Regression in 5ceaf14686ce626404afb6a5fbd3d8286410bf13.
Thanks gopackgo90 for the report and Mariusz Felisiak for tests.
| -rw-r--r-- | django/contrib/auth/forms.py | 4 | ||||
| -rw-r--r-- | tests/auth_tests/test_forms.py | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/django/contrib/auth/forms.py b/django/contrib/auth/forms.py index a0cfed0995..b4fb55c1b4 100644 --- a/django/contrib/auth/forms.py +++ b/django/contrib/auth/forms.py @@ -191,7 +191,9 @@ class AuthenticationForm(forms.Form): # Set the max length and label for the "username" field. self.username_field = UserModel._meta.get_field(UserModel.USERNAME_FIELD) - self.fields['username'].max_length = self.username_field.max_length or 254 + username_max_length = self.username_field.max_length or 254 + self.fields['username'].max_length = username_max_length + self.fields['username'].widget.attrs['maxlength'] = username_max_length if self.fields['username'].label is None: self.fields['username'].label = capfirst(self.username_field.verbose_name) diff --git a/tests/auth_tests/test_forms.py b/tests/auth_tests/test_forms.py index 7085dcfa11..40e3050144 100644 --- a/tests/auth_tests/test_forms.py +++ b/tests/auth_tests/test_forms.py @@ -423,6 +423,7 @@ class AuthenticationFormTest(TestDataMixin, TestCase): CustomEmailField.objects.create_user(**data) form = AuthenticationForm(None, data) self.assertEqual(form.fields['username'].max_length, 255) + self.assertEqual(form.fields['username'].widget.attrs.get('maxlength'), 255) self.assertEqual(form.errors, {}) @override_settings(AUTH_USER_MODEL='auth_tests.IntegerUsernameUser') @@ -435,6 +436,7 @@ class AuthenticationFormTest(TestDataMixin, TestCase): IntegerUsernameUser.objects.create_user(**data) form = AuthenticationForm(None, data) self.assertEqual(form.fields['username'].max_length, 254) + self.assertEqual(form.fields['username'].widget.attrs.get('maxlength'), 254) self.assertEqual(form.errors, {}) def test_username_field_label(self): |
