summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThom Wiggers <thom@thomwiggers.nl>2017-01-22 15:45:42 +0100
committerTim Graham <timograham@gmail.com>2017-01-28 09:29:00 -0500
commitd5b573d872bbe0d5825efaee2d41cb3cdc75417b (patch)
tree3ae230039a3802d0e7b3b1bfbb28d2a41a11e7e0
parent0de0699d94ccd078c83eadef296a0d9ccd65a62f (diff)
Fixed #26993 -- Increased User.last_name max_length to 150 characters.
-rw-r--r--AUTHORS1
-rw-r--r--django/contrib/auth/migrations/0009_alter_user_last_name_max_length.py16
-rw-r--r--django/contrib/auth/models.py2
-rw-r--r--docs/ref/contrib/auth.txt6
-rw-r--r--docs/releases/2.0.txt27
5 files changed, 50 insertions, 2 deletions
diff --git a/AUTHORS b/AUTHORS
index dbc414f5a3..c0b3778afa 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -738,6 +738,7 @@ answer newbie questions, and generally made Django that much better:
thebjorn <bp@datakortet.no>
Thejaswi Puthraya <thejaswi.puthraya@gmail.com>
Thijs van Dien <thijs@vandien.net>
+ Thom Wiggers
Thomas Chaumeny <t.chaumeny@gmail.com>
Thomas Güttler <hv@tbz-pariv.de>
Thomas Kerpe <thomas@kerpe.net>
diff --git a/django/contrib/auth/migrations/0009_alter_user_last_name_max_length.py b/django/contrib/auth/migrations/0009_alter_user_last_name_max_length.py
new file mode 100644
index 0000000000..b217359e48
--- /dev/null
+++ b/django/contrib/auth/migrations/0009_alter_user_last_name_max_length.py
@@ -0,0 +1,16 @@
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('auth', '0008_alter_user_username_max_length'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='user',
+ name='last_name',
+ field=models.CharField(blank=True, max_length=150, verbose_name='last name'),
+ ),
+ ]
diff --git a/django/contrib/auth/models.py b/django/contrib/auth/models.py
index 7476a69517..7da65666b1 100644
--- a/django/contrib/auth/models.py
+++ b/django/contrib/auth/models.py
@@ -311,7 +311,7 @@ class AbstractUser(AbstractBaseUser, PermissionsMixin):
},
)
first_name = models.CharField(_('first name'), max_length=30, blank=True)
- last_name = models.CharField(_('last name'), max_length=30, blank=True)
+ last_name = models.CharField(_('last name'), max_length=150, blank=True)
email = models.EmailField(_('email address'), blank=True)
is_staff = models.BooleanField(
_('staff status'),
diff --git a/docs/ref/contrib/auth.txt b/docs/ref/contrib/auth.txt
index a269230643..265dc53579 100644
--- a/docs/ref/contrib/auth.txt
+++ b/docs/ref/contrib/auth.txt
@@ -47,7 +47,11 @@ Fields
.. attribute:: last_name
- Optional. 30 characters or fewer.
+ Optional. 150 characters or fewer.
+
+ .. versionchanged:: 2.0
+
+ The ``max_length`` increased from 30 to 150 characters.
.. attribute:: email
diff --git a/docs/releases/2.0.txt b/docs/releases/2.0.txt
index 2ef6ba9be1..7cb9b5da73 100644
--- a/docs/releases/2.0.txt
+++ b/docs/releases/2.0.txt
@@ -217,6 +217,33 @@ The end of upstream support for Oracle 11.2 is Dec. 2020. Django 1.11 will be
supported until April 2020 which almost reaches this date. Django 2.0
officially supports Oracle 12.1+.
+:attr:`AbstractUser.last_name <django.contrib.auth.models.User.last_name>` ``max_length`` increased to 150
+----------------------------------------------------------------------------------------------------------
+
+A migration for :attr:`django.contrib.auth.models.User.last_name` is included.
+If you have a custom user model inheriting from ``AbstractUser``, you'll need
+to generate and apply a database migration for your user model.
+
+If you want to preserve the 30 character limit for last names, use a custom
+form::
+
+ from django.contrib.auth.forms import UserChangeForm
+
+ class MyUserChangeForm(UserChangeForm):
+ last_name = forms.CharField(max_length=30, required=False)
+
+If you wish to keep this restriction in the admin when editing users, set
+``UserAdmin.form`` to use this form::
+
+ from django.contrib.auth.admin import UserAdmin
+ from django.contrib.auth.models import User
+
+ class MyUserAdmin(UserAdmin):
+ form = MyUserChangeForm
+
+ admin.site.unregister(User)
+ admin.site.register(User, MyUserAdmin)
+
Miscellaneous
-------------