Commit aa5ef0d4 authored by Markus Holtermann's avatar Markus Holtermann Committed by Tim Graham
Browse files

Fixed #23822 -- Added support for serializing model managers in migration

Thanks to Shai Berger, Loïc Bistuer, Simon Charette, Andrew Godwin,
Tim Graham, Carl Meyer, and others for their review and input.
parent e37ab311
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ from __future__ import unicode_literals

from django.db import models, migrations
from django.conf import settings
import django.contrib.admin.models


class Migration(migrations.Migration):
@@ -32,5 +33,8 @@ class Migration(migrations.Migration):
                'verbose_name_plural': 'log entries',
            },
            bases=(models.Model,),
            managers=[
                ('objects', django.contrib.admin.models.LogEntryManager()),
            ],
        ),
    ]
+2 −0
Original line number Diff line number Diff line
@@ -15,6 +15,8 @@ DELETION = 3


class LogEntryManager(models.Manager):
    use_in_migrations = True

    def log_action(self, user_id, content_type_id, object_id, object_repr, action_flag, change_message=''):
        e = self.model(
            None, None, user_id, content_type_id, smart_text(object_id),
+10 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ from __future__ import unicode_literals
from django.core import validators
from django.db import models, migrations
from django.utils import timezone
import django.contrib.auth.models


class Migration(migrations.Migration):
@@ -27,6 +28,9 @@ class Migration(migrations.Migration):
                'verbose_name': 'permission',
                'verbose_name_plural': 'permissions',
            },
            managers=[
                ('objects', django.contrib.auth.models.PermissionManager()),
            ],
        ),
        migrations.CreateModel(
            name='Group',
@@ -39,6 +43,9 @@ class Migration(migrations.Migration):
                'verbose_name': 'group',
                'verbose_name_plural': 'groups',
            },
            managers=[
                ('objects', django.contrib.auth.models.GroupManager()),
            ],
        ),
        migrations.CreateModel(
            name='User',
@@ -62,5 +69,8 @@ class Migration(migrations.Migration):
                'verbose_name': 'user',
                'verbose_name_plural': 'users',
            },
            managers=[
                ('objects', django.contrib.auth.models.UserManager()),
            ],
        ),
    ]
+5 −0
Original line number Diff line number Diff line
@@ -29,6 +29,8 @@ user_logged_in.connect(update_last_login)


class PermissionManager(models.Manager):
    use_in_migrations = True

    def get_by_natural_key(self, codename, app_label, model):
        return self.get(
            codename=codename,
@@ -87,6 +89,8 @@ class GroupManager(models.Manager):
    """
    The manager for the auth's Group model.
    """
    use_in_migrations = True

    def get_by_natural_key(self, name):
        return self.get(name=name)

@@ -160,6 +164,7 @@ class BaseUserManager(models.Manager):


class UserManager(BaseUserManager):
    use_in_migrations = True

    def _create_user(self, username, email, password,
                     is_staff, is_superuser, **extra_fields):
+4 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@
from __future__ import unicode_literals

from django.db import models, migrations
import django.contrib.contenttypes.models


class Migration(migrations.Migration):
@@ -25,6 +26,9 @@ class Migration(migrations.Migration):
                'verbose_name_plural': 'content types',
            },
            bases=(models.Model,),
            managers=[
                ('objects', django.contrib.contenttypes.models.ContentTypeManager()),
            ],
        ),
        migrations.AlterUniqueTogether(
            name='contenttype',
Loading