我在运行将字段从CharField更改为ManyToMany字段的迁移时出错。
我有一个自定义用户模型,它选择了他们的兴趣,为了简单起见,我已经大大减少了。
# main.models
class Interest(models.Model):
"""
get what the user is interested in.
"""
name = models.CharField(max_length=30)
def __str__(self):
return self.name
# accounts.models
from main.models import Interest
class User(AbstractUser):
"""
the custom user class we are using
"""
# before it was:
# interests = models.CharField(max_length=100, blank=True)
interests = models.ManyToManyField(Interest, blank=True, null=True,
help_text="What are your interests or hobbies?")
# migration.py
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
('accounts', '0009_remove_user_friends'),
]
operations = [
migrations.AlterField(
model_name='user',
name='interests',
field=models.ManyToManyField(help_text='What are your interests or hobbies?', to='main.Interest', null=True, blank=True),
preserve_default=True,
),
]
主要应用已在INSTALLED_APPS
中正确安装,依赖关系已存在,而且到目前为止我还没有遇到任何迁移问题(在应用内应用中进行第9次迁移)。
这是堆栈跟踪。它似乎在迁移文件中遇到to='main.Interest'
问题,但我不确定如何修复它?
Applying accounts.0010_auto_20150309_1554...Traceback (most recent call last):
File "/Users/awwester/Sites/django/rlg/lib/python3.4/site-packages/django/apps/registry.py", line 148, in get_app_config
return self.app_configs[app_label]
KeyError: 'main'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/awwester/Sites/django/rlg/lib/python3.4/site-packages/django/db/migrations/state.py", line 84, in render
model = self.apps.get_model(lookup_model[0], lookup_model[1])
File "/Users/awwester/Sites/django/rlg/lib/python3.4/site-packages/django/apps/registry.py", line 202, in get_model
return self.get_app_config(app_label).get_model(model_name.lower())
File "/Users/awwester/Sites/django/rlg/lib/python3.4/site-packages/django/apps/registry.py", line 150, in get_app_config
raise LookupError("No installed app with label '%s'." % app_label)
LookupError: No installed app with label 'main'.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Users/awwester/Sites/django/rlg/lib/python3.4/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
utility.execute()
File "/Users/awwester/Sites/django/rlg/lib/python3.4/site-packages/django/core/management/__init__.py", line 377, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/awwester/Sites/django/rlg/lib/python3.4/site-packages/django/core/management/base.py", line 288, in run_from_argv
self.execute(*args, **options.__dict__)
File "/Users/awwester/Sites/django/rlg/lib/python3.4/site-packages/django/core/management/base.py", line 338, in execute
output = self.handle(*args, **options)
File "/Users/awwester/Sites/django/rlg/lib/python3.4/site-packages/django/core/management/commands/migrate.py", line 161, in handle
executor.migrate(targets, plan, fake=options.get("fake", False))
File "/Users/awwester/Sites/django/rlg/lib/python3.4/site-packages/django/db/migrations/executor.py", line 68, in migrate
self.apply_migration(migration, fake=fake)
File "/Users/awwester/Sites/django/rlg/lib/python3.4/site-packages/django/db/migrations/executor.py", line 96, in apply_migration
if self.detect_soft_applied(migration):
File "/Users/awwester/Sites/django/rlg/lib/python3.4/site-packages/django/db/migrations/executor.py", line 140, in detect_soft_applied
apps = project_state.render()
File "/Users/awwester/Sites/django/rlg/lib/python3.4/site-packages/django/db/migrations/state.py", line 94, in render
raise ValueError(msg.format(field=operations[0][1], model=lookup_model))
ValueError: Lookup failed for model referenced by field accounts.User.interests: main.Interest