mirror of
https://github.com/django/django.git
synced 2025-08-19 02:01:29 +00:00
[1.9.x] Refs #19353 -- Added tests for using custom user models with built-in auth forms.
Also updated topics/auth/customizing.txt to reflect that subclasses of
UserCreationForm and UserChangeForm can be used with custom user models.
Thanks Baptiste Mispelon for the initial documentation.
Backport of f0425c7260
from master
This commit is contained in:
parent
61f1b6ff21
commit
f78892f2de
2 changed files with 66 additions and 34 deletions
|
@ -10,6 +10,7 @@ from django.contrib.auth.forms import (
|
|||
SetPasswordForm, UserChangeForm, UserCreationForm,
|
||||
)
|
||||
from django.contrib.auth.models import User
|
||||
from django.contrib.auth.tests.custom_user import ExtensionUser
|
||||
from django.contrib.sites.models import Site
|
||||
from django.core import mail
|
||||
from django.core.mail import EmailMultiAlternatives
|
||||
|
@ -153,6 +154,21 @@ class UserCreationFormTest(TestDataMixin, TestCase):
|
|||
form['password2'].errors
|
||||
)
|
||||
|
||||
def test_custom_form(self):
|
||||
class CustomUserCreationForm(UserCreationForm):
|
||||
class Meta(UserCreationForm.Meta):
|
||||
model = ExtensionUser
|
||||
fields = UserCreationForm.Meta.fields + ('date_of_birth',)
|
||||
|
||||
data = {
|
||||
'username': 'testclient',
|
||||
'password1': 'testclient',
|
||||
'password2': 'testclient',
|
||||
'date_of_birth': '1988-02-24',
|
||||
}
|
||||
form = CustomUserCreationForm(data)
|
||||
self.assertTrue(form.is_valid())
|
||||
|
||||
|
||||
@override_settings(USE_TZ=False, PASSWORD_HASHERS=['django.contrib.auth.hashers.SHA1PasswordHasher'])
|
||||
class AuthenticationFormTest(TestDataMixin, TestCase):
|
||||
|
@ -441,6 +457,24 @@ class UserChangeFormTest(TestDataMixin, TestCase):
|
|||
# value to render correctly
|
||||
self.assertEqual(form.initial['password'], form['password'].value())
|
||||
|
||||
def test_custom_form(self):
|
||||
class CustomUserChangeForm(UserChangeForm):
|
||||
class Meta(UserChangeForm.Meta):
|
||||
model = ExtensionUser
|
||||
fields = ('username', 'password', 'date_of_birth',)
|
||||
|
||||
user = User.objects.get(username='testclient')
|
||||
data = {
|
||||
'username': 'testclient',
|
||||
'password': 'testclient',
|
||||
'date_of_birth': '1998-02-24',
|
||||
}
|
||||
form = CustomUserChangeForm(data, instance=user)
|
||||
self.assertTrue(form.is_valid())
|
||||
form.save()
|
||||
self.assertEqual(form.cleaned_data['username'], 'testclient')
|
||||
self.assertEqual(form.cleaned_data['date_of_birth'], datetime.date(1998, 2, 24))
|
||||
|
||||
|
||||
@override_settings(
|
||||
PASSWORD_HASHERS=['django.contrib.auth.hashers.SHA1PasswordHasher'],
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue