在Django 1.4中交叉引用外键

时间:2013-04-28 13:11:23

标签: python django database-design django-1.4 schema-design

我有一个Django项目,我需要两个模型来互相拥有一个外键。但是这是不可能的,因为两个Python文件必须互相导入,而Python不允许这样做。解决这个问题的最佳方法是什么?

所以我的代码目前看起来像这样:

国家/ models.py:

from django.db.models import Model, ForeignKey
from users.models import Profile

class Country(Model):
    president = ForeignKey(Profile)

用户/ models.py:

from django.db.models import Model, ForeignKey
from countries.models import Country

class Profile(Model):
    citizenship = ForeignKey(Country)

给出的错误是:ImportError:无法导入名称Profile

1 个答案:

答案 0 :(得分:5)

您可以将引用的模型编写为字符串:

用户/ models.py:

from django.db.models import Model, ForeignKey

class Profile(Model):
    citizenship = ForeignKey('countries.Country')