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()