我是 SQL Alchemy 的新手,我需要帮助来实现以下关系:
我有两个表Trends和ClosestTrends,我想声明两个一对多关系:
表关系
在 SQL 中,它将是:
ALTER TABLE "closest_trends" ADD FOREIGN KEY ("id_trend_ref") REFERENCES "trends" ("id") ON DELETE CASCADE;
ALTER TABLE "closest_trends" ADD FOREIGN KEY ("id_trend_close") REFERENCES "trends" ("id") ON DELETE CASCADE;
我尝试了以下实现:
class Trends(Base):
__tablename__ = "trends"
__table_args__ = (
UniqueConstraint(
"name", "id_region", "language_iso", name="name_id_region_language"
),
)
id = Column(Integer, primary_key=True, index=True, unique=True)
.
.
.
closest_trends = relationship("ClosestTrends", backref="Trends")
def __str__(self):
return "Trends"
class ClosestTrends(Base):
__tablename__ = "closest_trends"
__table_args__ = (
UniqueConstraint(
"id_trend_ref", "id_trend_close", name="id_trend_ref_id_trend_close"
),
)
id = Column(Integer, primary_key=True, index=True, unique=True)
.
.
.
id_trend_ref = Column(
Integer, ForeignKey("trends.id", ondelete="CASCADE"), nullable=False
)
id_trend_close = Column(
Integer, ForeignKey("trends.id", ondelete="CASCADE"), nullable=False
)
def __str__(self):
return "ClosestTrends"
我无法工作并且收到以下错误:
sqlalchemy.exc.AmbigouslyForeignKeysError:无法确定关系 Trends.closest_trends 上父/子表之间的联接条件 - 有多个外键路径链接这些表。指定“foreign_keys”参数,提供应被视为包含对父表的外键引用的列的列表。
有谁知道如何解决这个问题?
胡说叔叔
相关分类