5

Just created a User model in my models.py to save the users in the database. The model looks like this:

class User(AbstractBaseUser, PermissionsMixin): username = models.CharField(_('username'), max_length=30, unique=True, validators=[ validators.RegexValidator(re.compile('^[\w.@+-]+$'), _('Enter a valid username.'), _('invalid')) ]) first_name = models.CharField(_('first name'), max_length=30, blank=True, null=True) last_name = models.CharField(_('last name'), max_length=30, blank=True, null=True) email = models.EmailField(_('email address'), max_length=255) is_staff = models.BooleanField(_('staff status'), default=False,) is_active = models.BooleanField(_('active'), default=False,) date_joined = models.DateTimeField(_('date joined'), default=timezone.now) USERNAME_FIELD = 'username' REQUIRED_FIELDS = ['email',] class Meta: verbose_name = _('user') verbose_name_plural = _('users') def get_full_name(self): full_name = '%s %s' % (self.first_name, self.last_name) return full_name.strip() def get_short_name(self): return self.first_name def email_user(self, subject, message, from_email=None): send_mail(subject, message, from_email, [self.email]) 

I've also added in settings.py this piece of code:

AUTH_USER_MODEL = "myapp.User" 

However, when I try to makemigrations for applying the changes, it appears this error:

Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "C:\Python\lib\site-packages\django-1.9.1-py3.5.egg\django\core\management\__init__.py", line 353, in execute_from_command_line utility.execute() File "C:\Python\lib\site-packages\django-1.9.1-py3.5.egg\django\core\management\__init__.py", line 345, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "C:\Python\lib\site-packages\django-1.9.1-py3.5.egg\django\core\management\base.py", line 348, in run_from_argv self.execute(*args, **cmd_options) File "C:\Python\lib\site-packages\django-1.9.1-py3.5.egg\django\core\management\base.py", line 399, in execute output = self.handle(*args, **options) File "C:\Python\lib\site-packages\django-1.9.1-py3.5.egg\django\core\management\commands\makemigrations.py", line 105, in handle loader.project_state(), File "C:\Python\lib\site-packages\django-1.9.1-py3.5.egg\django\db\migrations\loader.py", line 338, in project_state return self.graph.make_state(nodes=nodes, at_end=at_end, real_apps=list(self.unmigrated_apps)) File "C:\Python\lib\site-packages\django-1.9.1-py3.5.egg\django\db\migrations\graph.py", line 280, in make_state project_state = self.nodes[node].mutate_state(project_state, preserve=False) File "C:\Python\lib\site-packages\django-1.9.1-py3.5.egg\django\db\migrations\migration.py", line 88, in mutate_state operation.state_forwards(self.app_label, new_state) File "C:\Python\lib\site-packages\django-1.9.1-py3.5.egg\django\db\migrations\operations\models.py", line 158, in state_forwards apps = state.apps File "C:\Python\lib\site-packages\django-1.9.1-py3.5.egg\django\utils\functional.py", line 33, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "C:\Python\lib\site-packages\django-1.9.1-py3.5.egg\django\db\migrations\state.py", line 162, in apps return StateApps(self.real_apps, self.models) File "C:\Python\lib\site-packages\django-1.9.1-py3.5.egg\django\db\migrations\state.py", line 235, in __init__ raise ValueError(self._pending_models_error(pending_models)) ValueError: Unhandled pending operations for models: myapp.user (referred to by fields: admin.LogEntry.user) 

So I'm looking for info for possible solutions or causes for this error but can't figure out why it happens. May it have to be a problem with some previous migration? (if so, I have no clue of which nor why). I'd add more information if needed, but I'd really appreciate any clue of the cause of this error.

1 Answer 1

12

The custom user docs specifically warn against switching User model after you have already created migrations; there's too much dependency for that to work properly. You may need to delete your existing db and migrations and start from scratch.

Sign up to request clarification or add additional context in comments.

1 Comment

I see, so I can use the default User system that I can see in /admin/ page and there wouldn't be any issue right? I won't be able to edit it or upgrade it (or make a relatively complex UI)?

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.