我有一张名为firm的表:
class Firm(Base):
__tablename__ = "firm"
id = Column(Integer, primary_key=True)
name = Column(Unicode(255))
parent_id = Column(Integer, ForeignKey('firm.id'))
level = Column(Integer)
parent = relationship("Firm", remote_side=[id])
id |名字| parent_id |水平
1 |名字1 | 0 | 1
2 |名字2 | 0 | 1
3 |名称3 | 1 | 2
4 |名字4 | 1 | 2
5 |名字5 | 3 | 3
6 |名字5 | 4 | 3
我想:
1)获得祖父母姓名,给定孙子身份的父母姓名。我用过这个,但是没用。获取结果时出现DettachedInstance错误。
ret = db_session.query(Firm).filter_by(id=6).options(joinedload('parent')).options(joinedload('parent')).first() # grandparent id = 1
print ret.parent.parent.name # grandparent name is printed out here => OK
db_session.expunge_all()
return render_template('firm.html', firm_tree=ret);
# here is code in html file
<p>{{ firm_tree.parent.name }}</p> <!-- ==>> OK -->
<p>{{ firm_tree.parent.parent.name }}</p> <!-- ==>> DetachedInstance error -->
2)获取与给定的祖父母id&amp;匹配的所有记录(等级= 3)。给定的父ID(此父级是祖父母的子级)
3)获取与给定的祖父母id&amp;匹配的所有记录(等级= 3)。无需关心父ID
我不知道2)和3)。 任何帮助表示赞赏!!!