Python中的前向类声明
我有两个类,顺序如下:
class A(models):
...
class B(models):
a = models.ManyToManyField(A)
现在我需要把我的模型改成下面这个样子:
class A(models):
b = models.ManyToManyField(B)
class B(models):
...
我需要使用south迁移。我想在类A中创建一个新的多对多字段,然后迁移数据,并从类B中删除这个字段。问题是这两个类在同一个模型里。所以当我把多对多字段放到类A中时,它无法被识别,因为类B的声明在类A下面。该怎么解决这个问题呢?
1 个回答
9
至少SQLAlchemy让你可以用字符串代替类。你可以试试看django-orm是否也支持这样做。
a = models.ManyToManyField('A')
# ...
b = models.ManyToManyField('B')
更新:根据Django/Python循环模型引用的内容,这确实是正确的做法。