summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/contrib/auth/forms.py2
-rw-r--r--tests/auth_tests/test_forms.py17
2 files changed, 17 insertions, 2 deletions
diff --git a/django/contrib/auth/forms.py b/django/contrib/auth/forms.py
index 4485e1fb14..171fa1fb41 100644
--- a/django/contrib/auth/forms.py
+++ b/django/contrib/auth/forms.py
@@ -82,7 +82,7 @@ class UserCreationForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(UserCreationForm, self).__init__(*args, **kwargs)
- self.fields['username'].widget.attrs.update({'autofocus': ''})
+ self.fields[self._meta.model.USERNAME_FIELD].widget.attrs.update({'autofocus': ''})
def clean_password2(self):
password1 = self.cleaned_data.get("password1")
diff --git a/tests/auth_tests/test_forms.py b/tests/auth_tests/test_forms.py
index 6172c44783..f43a814c88 100644
--- a/tests/auth_tests/test_forms.py
+++ b/tests/auth_tests/test_forms.py
@@ -20,7 +20,7 @@ from django.utils.encoding import force_text
from django.utils.text import capfirst
from django.utils.translation import ugettext as _
-from .models.custom_user import ExtensionUser
+from .models.custom_user import CustomUser, ExtensionUser
from .settings import AUTH_TEMPLATES
@@ -139,6 +139,21 @@ class UserCreationFormTest(TestDataMixin, TestCase):
form = CustomUserCreationForm(data)
self.assertTrue(form.is_valid())
+ def test_custom_form_with_different_username_field(self):
+ class CustomUserCreationForm(UserCreationForm):
+ class Meta(UserCreationForm.Meta):
+ model = CustomUser
+ fields = ('email', 'date_of_birth')
+
+ data = {
+ 'email': 'test@client222.com',
+ 'password1': 'testclient',
+ 'password2': 'testclient',
+ 'date_of_birth': '1988-02-24',
+ }
+ form = CustomUserCreationForm(data)
+ self.assertTrue(form.is_valid())
+
def test_password_whitespace_not_stripped(self):
data = {
'username': 'testuser',