Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fixed #19368 -- Ensured that login error messages adapt to changes in…

… the User model.

Thanks to un33k for the report.
  • Loading branch information...
commit 27f8129d64292868f6a328f7bf9a1bed67967ff3 1 parent 47e1df8
@freakboy3742 freakboy3742 authored
Showing with 15 additions and 9 deletions.
  1. +8 −4 django/contrib/admin/forms.py
  2. +7 −5 django/contrib/auth/forms.py
View
12 django/contrib/admin/forms.py
@@ -6,8 +6,8 @@
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 @@ def clean(self):
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
View
12 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 @@ def __init__(self, request=None, *args, **kwargs):
# 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 @@ def clean(self):
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()
Please sign in to comment.
Something went wrong with that request. Please try again.