在SqlAlchemy ORM定义中,有没有一种方法可以更显式地使用类/成员引用而不是字符串常量,而不必运行循环依赖关系?ORM的主要好处之一是保持事物的“干净”和可维护性,而不是让字符串常量到处复制。这完全破坏了这种好处。你知道吗
SqlAlchemy文档中的一个简单示例,显示如何使用字符串常量。你知道吗
class Parent(Base):
__tablename__ = 'parent'
id = Column(Integer, primary_key=True)
children = relationship("Child")
class Child(Base):
__tablename__ = 'child'
id = Column(Integer, primary_key=True)
parent_id = Column(Integer, ForeignKey('parent.id'))
我想这样做:
class Parent(Base):
__tablename__ = 'parent'
id = Column(Integer, primary_key=True)
children = relationship(Child)
class Child(Base):
__tablename__ = 'child'
id = Column(Integer, primary_key=True)
parent_id = Column(Integer, ForeignKey(Parent.id))
这通常是合法的,但问题是我遇到了循环依赖,需要从子级导入父级和从父级导入子级(假设它们在不同的文件中)。我能做的最好的事情就是分割差异——在一端使用字符串,在另一端执行显式类w/import。只是觉得恶心。你知道吗
只是想知道是我错过了什么,还是有人有办法做到这一点。你知道吗
作为基于字符串的属性的替代方法,也可以在创建所有类之后定义属性。只需将它们添加到目标类:
相关问题 更多 >
编程相关推荐