我在User
中定义了自定义app.models
模型。它也在AUTH_USER_MODEL
设置中正确定义为app.User
。当我运行网站时,一切都很完美。
然而,当我运行./manage.py syncdb --migrate
时,它会突破以下追溯:
Traceback (most recent call last):
File ".virtualenv/lib/python2.7/site-packages/django/core/management/base.py", line 222, in run_from_argv
self.execute(*args, **options.__dict__)
File ".virtualenv/lib/python2.7/site-packages/django/core/management/base.py", line 255, in execute
output = self.handle(*args, **options)
File ".virtualenv/lib/python2.7/site-packages/django/core/management/base.py", line 386, in handle
return self.handle_noargs(**options)
File ".virtualenv/lib/python2.7/site-packages/south/management/commands/syncdb.py", line 103, in handle_noargs
management.call_command('migrate', **options)
File ".virtualenv/lib/python2.7/site-packages/django/core/management/__init__.py", line 161, in call_command
return klass.execute(*args, **defaults)
File ".virtualenv/lib/python2.7/site-packages/raven/contrib/django/management/__init__.py", line 37, in new_execute
return original_func(self, *args, **kwargs)
File ".virtualenv/lib/python2.7/site-packages/django/core/management/base.py", line 255, in execute
output = self.handle(*args, **options)
File ".virtualenv/lib/python2.7/site-packages/south/management/commands/migrate.py", line 111, in handle
ignore_ghosts = ignore_ghosts,
File ".virtualenv/lib/python2.7/site-packages/south/migration/__init__.py", line 233, in migrate_app
migrator.load_initial_data(target, db=database)
File ".virtualenv/lib/python2.7/site-packages/south/migration/migrators.py", line 224, in load_initial_data
call_command('loaddata', 'initial_data', verbosity=self.verbosity, database=db)
File ".virtualenv/lib/python2.7/site-packages/django/core/management/__init__.py", line 161, in call_command
return klass.execute(*args, **defaults)
File ".virtualenv/lib/python2.7/site-packages/raven/contrib/django/management/__init__.py", line 37, in new_execute
return original_func(self, *args, **kwargs)
File ".virtualenv/lib/python2.7/site-packages/django/core/management/base.py", line 254, in execute
self.validate()
File ".virtualenv/lib/python2.7/site-packages/django/core/management/base.py", line 285, in validate
raise CommandError("One or more models did not validate:\n%s" % error_text)
CommandError: One or more models did not validate:
auth.user: Model has been swapped out for 'app.User' which has not been installed or is abstract.
当我运行./manage.py syncdb --migrate app
时,一切都正常运行,所以我不知道这里有什么。有没有人有线索?
编辑:我已安装的应用的顺序:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.admin',
'django.contrib.webdesign',
'django.contrib.staticfiles',
'djcelery',
'app',
'babeldjango',
'debug_toolbar',
'template_timings_panel',
'devserver',
'django_extensions',
'djrill',
'facebook_tag',
'gunicorn',
'haystack',
'markitup',
'modeltranslation',
'raven.contrib.django',
'reversion',
'rosetta',
'sorl.thumbnail',
'south',
'statictastic',
'storages',
'twitter_tag',
'zebra',
'djcelery',
'djmoney_rates'
)
编辑2 :问题似乎是由第三方应用中的迁移引起的。如果我注释掉那些有迁移的应用程序,一切都会顺利进行。我想这也是预期的,因为./manage.py migrate app
工作正常,但./manage.py migrate
(运行所有应用程序的迁移)却没有。在构建这些信息和跟踪时,似乎在运行第三方应用程序的迁移时,我的app
模型根本不可用。