2016-04-08 3 views
5

ユーザーをmodels.pyに作成してユーザーをデータベースに保存しました。モデルは次のようになります。私は、変更を適用するためmakemigrationsしようとすると、それはこのエラーを表示されます、しかし新しいユーザーモデルを移行するときのエラー

AUTH_USER_MODEL = "myapp.User" 

class User(AbstractBaseUser, PermissionsMixin): 
    username = models.CharField(_('username'), max_length=30, unique=True, 
     validators=[ 
     validators.RegexValidator(re.compile('^[\[email protected]+-]+$'), _('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]) 

私はまた、settings.pyにコードのこの部分を追加しました:

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) 

このエラーの可能な解決策や原因については情報を探していますが、その理由を理解できません。これまでの移行で問題になるかもしれませんか? (もしそうなら、私はその理由もその理由もない)。必要に応じてさらに情報を追加したいと思いますが、このエラーの原因を実感していただきたいと思います。

答えて

9

custom user docsは、マイグレーションを作成した後で特にユーザーモデルの切り替えを警告します。それが正しく動作するにはあまりにも多くの依存関係があります。既存のdbおよび移行を削除して、最初から開始する必要があるかもしれません。

+0

私は/ admin/pageに表示されるデフォルトのユーザーシステムを使用できますし、問題はないでしょうか?私はそれを編集したり、それをアップグレードする(または比較的複雑なUIを作る)ことはできませんか? – Jim

関連する問題