【发布时间】:2016-02-03 10:35:06
【问题描述】:
我有两个应用程序(ook 和 eek 说),我想从 eek 中的模型使用外键到 ook 中的模型。两者都在INSTALLED_APPS 中,ook 首先。
在ook.models.py,我有:
class Fubar(models.Model):
...
在eek.models.py,我有:
class monkey(models.Model):
external = models.ForeignKey('ook.Fubar', blank=True, null=True)
...
生成的迁移是:
class Migration(migrations.Migration):
dependencies = [
('eek', '0002_auto_20151029_1040'),
]
operations = [
migrations.AlterField(
model_name='monkey',
name='external',
field=models.ForeignKey(blank=True, to='ook.Fubar', null=True),
),
]
当我运行迁移时,我收到此错误:
...
1595 raise ValueError('Foreign Object from and to fields must be
the same non-zero length')
1596 if isinstance(self.rel.to, six.string_types):
-> 1597 raise ValueError('Related model %r cannot be resolved' % self.rel.to)
1598 related_fields = []
1599 for index in range(len(self.from_fields)):
ValueError: Related model u'ook.Fubar' cannot be resolved
我做错了什么?
【问题讨论】:
-
ook和eek是否包含在INSTALLED_APPS中的settings.py中? -
@Leistungsabfall:是的,他们是,
ook在eek之前。 -
'ook.models.Foobar' 也许?
-
@cdvv7788:因为我在
ook上将Fubar添加到顶部__init__.py,所以没有任何区别。
标签: django django-models django-migrations