2015-02-12 48 views
8

引用的模型查找失败我试图用Django创建一个新模型,但我一直运行到错误Lookup failed for model referenced by field help.HelpDefinition.org: account.Organization。已导入Organization。你可以看到下面的模型。Django 1.7.3 - 由字段

models.py

org = models.ForeignKey(Organization, unique=True) 
help_type = models.CharField(max_length=255, choices=HELP_CHOICES) 
help_content = models.TextField(blank=True) 

该模型已经成功之前迁移。我在Postgres中通过psql删除了表格,以便它可以被重新创建。

回答

17

发生在更改关系中的目标对象时发生。即使它们具有相同的名称和字段,它们也不是同一个对象。我有同样的问题,并删除所有以前的迁移从migrations文件夹解决它。

+1

这听起来很奇怪,但实际上是这样做的方法。对模型名称的修改看起来似乎Django迁移目前还不支持(或者在1.7.3版本中尚未支持)。 – 2015-04-03 09:47:47

+0

如果您需要修改模型的名称,您可以创建一个空的迁移并使用['RenameModel'](https://docs.djangoproject.com/en/1.8/ref/migration-operations/#renamemodel)类。 – warownia1 2015-06-05 12:05:11

2

您还可以添加从对象的应用程序作为迁移的最后一次迁移的依赖项。这对我来说是诀窍。

class Migration(migrations.Migration): 

dependencies = [ 
    (<app>, <last_migration_filename>), 
... 
+0

我还通过在依赖项中添加了另一个应用程序迁移来解决“由字段引用的模型的查找失败”错误。 – baxeico 2017-09-27 15:36:54