【问题标题】:Forward class declaration in PythonPython中的前向类声明
【发布时间】:2011-07-15 14:22:52
【问题描述】:

我有两个课程:

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下面,这个问题怎么解决?

【问题讨论】:

标签: python django django-models django-south


【解决方案1】:

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

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

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

【讨论】:

  • (顺便说一句,在 SQLAlchemy 中使用字符串代替类仅适用于 DeclarativeBase。如果您直接使用映射器,则不能使用该技术,但您也不需要它)跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-08
  • 1970-01-01
  • 2021-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多