也许这是一个设计问题,但我有一个案例,我有一个定义默认部分的类,以及alternate_parts。
class Entity(Base):
__tablename__ = "entity"
id = Column(Integer, primary_key=True)
part_id = Column(Integer, ForeignKey('part.id'))
part = relationship("Part", backref="entities")
alternate_parts = relationship("Part", secondary="associate_entity_to_parts", backref="entities")
...
class Part(Base):
__tablename__ = "part"
id = Column(Integer, primary_key=True)
...
这会引发错误:
sqlalchemy.exc.ArgumentError: Error creating backref 'entities' on relationship 'Entity.alternate_parts': property of that name exists on mapper 'Mapper|Parts|part'
这样做的目的是我希望能够反向查找引用此部分的任何实体,包括它们交替的部分。以这种方式存储替代品的原因是,这种方式我不必存储某种类型的"默认"部分ID在某处。
有什么建议吗?