Commit cdad0b28 authored by Nick Sandford's avatar Nick Sandford Committed by Claude Paroz
Browse files

Fixed #19573 -- Allow override of username field label in AuthenticationForm

parent 62f842e2
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -169,6 +169,7 @@ class AuthenticationForm(forms.Form):
        # Set the label for the "username" field.
        UserModel = get_user_model()
        self.username_field = UserModel._meta.get_field(UserModel.USERNAME_FIELD)
        if not self.fields['username'].label:
            self.fields['username'].label = capfirst(self.username_field.verbose_name)

    def clean(self):
+9 −1
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ from django.contrib.auth.forms import (UserCreationForm, AuthenticationForm,
    ReadOnlyPasswordHashWidget)
from django.contrib.auth.tests.utils import skipIfCustomUser
from django.core import mail
from django.forms.fields import Field, EmailField
from django.forms.fields import Field, EmailField, CharField
from django.test import TestCase
from django.test.utils import override_settings
from django.utils.encoding import force_text
@@ -138,6 +138,14 @@ class AuthenticationFormTest(TestCase):
        self.assertTrue(form.is_valid())
        self.assertEqual(form.non_field_errors(), [])

    def test_username_field_label(self):

        class CustomAuthenticationForm(AuthenticationForm):
            username = CharField(label="Name", max_length=75)

        form = CustomAuthenticationForm()
        self.assertEqual(form['username'].label, "Name")


@skipIfCustomUser
@override_settings(USE_TZ=False, PASSWORD_HASHERS=('django.contrib.auth.hashers.SHA1PasswordHasher',))