diff options
| author | Russell Keith-Magee <russell@keith-magee.com> | 2012-12-15 22:43:44 +0800 |
|---|---|---|
| committer | Russell Keith-Magee <russell@keith-magee.com> | 2012-12-15 22:44:47 +0800 |
| commit | 27f8129d64292868f6a328f7bf9a1bed67967ff3 (patch) | |
| tree | d8d689d9ff7d650e09a0b31a19d10ac9104188c7 | |
| parent | 47e1df896b17aaaa97b73ef64010a7df4ea3d8d6 (diff) | |
Fixed #19368 -- Ensured that login error messages adapt to changes in the User model.
Thanks to un33k for the report.
| -rw-r--r-- | django/contrib/admin/forms.py | 12 | ||||
| -rw-r--r-- | django/contrib/auth/forms.py | 12 |
2 files changed, 15 insertions, 9 deletions
diff --git a/django/contrib/admin/forms.py b/django/contrib/admin/forms.py index f1e7076ece..1fabdce245 100644 --- a/django/contrib/admin/forms.py +++ b/django/contrib/admin/forms.py @@ -6,8 +6,8 @@ from django.contrib.auth import authenticate from django.contrib.auth.forms import AuthenticationForm from django.utils.translation import ugettext_lazy -ERROR_MESSAGE = ugettext_lazy("Please enter the correct username and password " - "for a staff account. Note that both fields are case-sensitive.") +ERROR_MESSAGE = ugettext_lazy("Please enter the correct %(username)s and password " + "for a staff account. Note that both fields may be case-sensitive.") class AdminAuthenticationForm(AuthenticationForm): @@ -26,8 +26,12 @@ class AdminAuthenticationForm(AuthenticationForm): if username and password: self.user_cache = authenticate(username=username, password=password) if self.user_cache is None: - raise forms.ValidationError(message) + raise forms.ValidationError(message % { + 'username': self.username_field.verbose_name + }) elif not self.user_cache.is_active or not self.user_cache.is_staff: - raise forms.ValidationError(message) + raise forms.ValidationError(message % { + 'username': self.username_field.verbose_name + }) self.check_for_test_cookie() return self.cleaned_data diff --git a/django/contrib/auth/forms.py b/django/contrib/auth/forms.py index b44bc8b40b..4e2f476cec 100644 --- a/django/contrib/auth/forms.py +++ b/django/contrib/auth/forms.py @@ -148,8 +148,8 @@ class AuthenticationForm(forms.Form): password = forms.CharField(label=_("Password"), widget=forms.PasswordInput) error_messages = { - 'invalid_login': _("Please enter a correct username and password. " - "Note that both fields are case-sensitive."), + 'invalid_login': _("Please enter a correct %(username)s and password. " + "Note that both fields may be case-sensitive."), 'no_cookies': _("Your Web browser doesn't appear to have cookies " "enabled. Cookies are required for logging in."), 'inactive': _("This account is inactive."), @@ -168,8 +168,8 @@ class AuthenticationForm(forms.Form): # Set the label for the "username" field. UserModel = get_user_model() - username_field = UserModel._meta.get_field(UserModel.USERNAME_FIELD) - self.fields['username'].label = capfirst(username_field.verbose_name) + self.username_field = UserModel._meta.get_field(UserModel.USERNAME_FIELD) + self.fields['username'].label = capfirst(self.username_field.verbose_name) def clean(self): username = self.cleaned_data.get('username') @@ -180,7 +180,9 @@ class AuthenticationForm(forms.Form): password=password) if self.user_cache is None: raise forms.ValidationError( - self.error_messages['invalid_login']) + self.error_messages['invalid_login'] % { + 'username': self.username_field.verbose_name + }) elif not self.user_cache.is_active: raise forms.ValidationError(self.error_messages['inactive']) self.check_for_test_cookie() |
