Python中文
首页
教程
问答
标签
搜索
登录
注册
与父类的sqlalchemy foreignkey关系
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有以下数据库架构:</p> <p><strong>父表</strong>:</p> <ol> <li>id—主键标识符。在</li> <li>类型-多态性识别。在</li> <li>名称-字符串数据列。在</li> </ol> <p><strong>子表</strong>-继承父表:</p> <ol> <li>id—主键标识符。在</li> <li>parent_id-父项的外键。在</li> <li>类别-字符串数据列。在</li> </ol> <p>总而言之,我有两张桌子。表子级继承自父级,并且还有一个foreignkey。在</p> <p><strong>UPD:</strong>我真的需要<strong>继承</strong>和<strong>foreignkey</strong>。这个例子只是一个简短的演示,它再现了这个问题。在</p> <p>我使用声明性的\u base来声明架构:</p> <pre><code># -*- coding: utf-8 -*- from sqlalchemy import Column, String, Integer, ForeignKey from sqlalchemy.orm import relationship from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker Base = declarative_base() class Parent(Base): __tablename__ = "Parent" id = Column(Integer, primary_key=True) type = Column(String(250)) name = Column(String(250)) __mapper_args__ = { 'polymorphic_identity':'Parent', 'polymorphic_on':type } class Child(Parent): __tablename__ = 'Child' id = Column(Integer, ForeignKey('Parent.id'), primary_key=True) parent_id = Column(ForeignKey("Parent.id"), nullable=True) category = Column(String(250)) __mapper_args__ = { 'polymorphic_identity':'Child', } engine = create_engine('postgresql+psycopg2://joe:joe@localhost/alch') session = sessionmaker() session.configure(bind=engine) Base.metadata.create_all(engine) </code></pre> <p>但是当我运行代码时,我得到了以下错误:</p> <blockquote> <blockquote> <p>sqlalchemy.exc.AmbiguousForeignKeysError: Can't determine join between 'Parent' and 'Child'; tables have more than one foreign key constraint relationship between them. Please specify the 'onclause' of this join explicitly.</p> </blockquote> </blockquote> <p>我试着自己为父母或子女分别设置关系属性,也为两者设置关系属性。尝试使用primaryjoin和外键参数的关系。但错误是一样的。在</p> <p>我完全不明白这个错误。 我需要帮助。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您是否尝试删除子id字段的外键?在</p> <pre><code>id = Column(Integer, ForeignKey('Parent.id'), primary_key=True) parent_id = Column(ForeignKey("Parent.id"), nullable=True) </code></pre> <p>你需要这样的东西:</p> ^{pr2}$
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
5 回答
如何添加表示整数的擦边字符串?
8 回答
如何添加要在Bokeh中使用的新font.ttf文件?
7 回答
如何添加要显示的矩阵XY轴编号和XY轴
3 回答
如何添加计数?
4 回答
如何添加计数器函数?
9 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
3 回答
如何添加计数器来跟踪while循环中的月份和年份?
5 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
6 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
6 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
7 回答
如何添加评论拉梅尔亚姆
4 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
5 回答
如何添加谷歌地点自动完成到Flask?
7 回答
如何添加超时、python discord bot
2 回答
如何添加超过1dp的检查
3 回答
如何添加距离方法
6 回答
如何添加跟随游戏的敌人精灵
5 回答
如何添加路径以便python可以找到程序?
7 回答
如何添加身份验证/安全性以使用happybase访问HBase?
9 回答