summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/contrib/auth/models.py2
-rw-r--r--django/contrib/auth/tests/basic.py11
2 files changed, 12 insertions, 1 deletions
diff --git a/django/contrib/auth/models.py b/django/contrib/auth/models.py
index 1b63833688..df3851d353 100644
--- a/django/contrib/auth/models.py
+++ b/django/contrib/auth/models.py
@@ -461,7 +461,7 @@ class User(AbstractUser):
Username, password and email are required. Other fields are optional.
"""
- class Meta:
+ class Meta(AbstractUser.Meta):
swappable = 'AUTH_USER_MODEL'
diff --git a/django/contrib/auth/tests/basic.py b/django/contrib/auth/tests/basic.py
index 097bc90451..ec94fe5b46 100644
--- a/django/contrib/auth/tests/basic.py
+++ b/django/contrib/auth/tests/basic.py
@@ -12,6 +12,7 @@ from django.core.exceptions import ImproperlyConfigured
from django.core.management import call_command
from django.test import TestCase
from django.test.utils import override_settings
+from django.utils import translation
from django.utils.encoding import force_str
from django.utils.six import binary_type, PY3, StringIO
@@ -232,3 +233,13 @@ class BasicTestCase(TestCase):
"The current user model must point to an installed model"
with self.assertRaises(ImproperlyConfigured):
get_user_model()
+
+ @skipIfCustomUser
+ def test_user_verbose_names_translatable(self):
+ "Default User model verbose names are translatable (#19945)"
+ with translation.override('en'):
+ self.assertEqual(User._meta.verbose_name, 'user')
+ self.assertEqual(User._meta.verbose_name_plural, 'users')
+ with translation.override('es'):
+ self.assertEqual(User._meta.verbose_name, 'usuario')
+ self.assertEqual(User._meta.verbose_name_plural, 'usuarios')