Python中的前向类声明

时间:2011-03-15 07:58:39

标签: python django django-models django-south

我按顺序有两个课程:

class A(models):
    ...

class B(models):
    a = models.ManyToManyField(A)

现在我必须将我的模型改为以下一个:

class A(models):
    b = models.ManyToManyField(B)

class B(models):
    ...

我必须使用南迁移。我想在A类中创建新的多对多字段,从B类迁移数据和删除字段。问题是两者都在同一个模型中。因此,当我将多对多的东西放入A类时,它是无法看到的。因为B声明低于A.如何解决这个问题?

1 个答案:

答案 0 :(得分:9)

至少SQLAlchemy允许您使用字符串而不是类。尝试django-orm也允许这样做。

a = models.ManyToManyField('A')
# ...
b = models.ManyToManyField('B')

更新:根据Django/Python Circular model reference,这正是要走的路。