从另一个应用程序导入模型,其名称与当前应用程序相同

时间:2013-07-23 17:25:08

标签: python django

这是我的环境应用程序的修剪版本;

from belongings.models import Item

class Achievement(models.Model):

    sub_category = models.ForeignKey('AchievementSubcategory')
    name = models.CharField(max_length = 45)
    description = models.TextField(blank = True)
    points = models.IntegerField() # The amount of points rewarded for the achievement
    rewarded_item = models.ForeignKey('belongings.Item', blank = True, null = True, default = None)

不,我正在进行此模式迁移;

 python manage.py schemamigration environment --auto

..它给了我;

 ImportError: cannot import name Element

发生这种情况的可能原因是因为Element在belongings.Item中被链接为ForeignKey。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

是的,你有一个循环导入。

您已使用字符串外键引用('belongings.Item')对其进行了部分处理。现在你仍然需要删除实际的python导入来摆脱循环引用。

删除它:

from belongings.models import Item