From 0732c8e8c6e156d4d9a4a1cc02d631fe41342bf8 Mon Sep 17 00:00:00 2001 From: Mark Huang Date: Mon, 6 May 2013 18:45:56 +0800 Subject: [PATCH] Fixed #20357 -- Allow empty username field label in `AuthentificationForm`. --- django/contrib/auth/forms.py | 2 +- django/contrib/auth/tests/test_forms.py | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/django/contrib/auth/forms.py b/django/contrib/auth/forms.py index e44e7a703e..0e08d8ef31 100644 --- a/django/contrib/auth/forms.py +++ b/django/contrib/auth/forms.py @@ -171,7 +171,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: + if self.fields['username'].label is None: self.fields['username'].label = capfirst(self.username_field.verbose_name) def clean(self): diff --git a/django/contrib/auth/tests/test_forms.py b/django/contrib/auth/tests/test_forms.py index 2c8f6e4faf..0b998105af 100644 --- a/django/contrib/auth/tests/test_forms.py +++ b/django/contrib/auth/tests/test_forms.py @@ -1,6 +1,8 @@ from __future__ import unicode_literals import os + +from django.contrib.auth import get_user_model from django.contrib.auth.models import User from django.contrib.auth.forms import (UserCreationForm, AuthenticationForm, PasswordChangeForm, SetPasswordForm, UserChangeForm, PasswordResetForm, @@ -13,6 +15,7 @@ from django.test.utils import override_settings from django.utils.encoding import force_text from django.utils._os import upath from django.utils import translation +from django.utils.text import capfirst from django.utils.translation import ugettext as _ @@ -146,6 +149,24 @@ class AuthenticationFormTest(TestCase): form = CustomAuthenticationForm() self.assertEqual(form['username'].label, "Name") + def test_username_field_label_not_set(self): + + class CustomAuthenticationForm(AuthenticationForm): + username = CharField() + + form = CustomAuthenticationForm() + UserModel = get_user_model() + username_field = UserModel._meta.get_field(UserModel.USERNAME_FIELD) + self.assertEqual(form.fields['username'].label, capfirst(username_field.verbose_name)) + + def test_username_field_label_empty_string(self): + + class CustomAuthenticationForm(AuthenticationForm): + username = CharField(label='') + + form = CustomAuthenticationForm() + self.assertEqual(form.fields['username'].label, "") + @skipIfCustomUser @override_settings(USE_TZ=False, PASSWORD_HASHERS=('django.contrib.auth.hashers.SHA1PasswordHasher',))