Flask-sqlalchemy 一对多存储问题

class Parent(B):
    __tablename__ = 'parent'
    id = (Integer, primary_key=True)
    childrens = ("Child")

class Child(B):
    __tablename__ = 'child'
    id = (Integer, primary_key=True)
    parent_id = (Integer, ForeignKey('parent.id'))

   def save(self, parent):
       parent.childrens.append(self)
       db.session.add(parent)
       db.session.add(self)
       db.session.commit()

使用save方法后,调用 parent.childrens.all() 为空 表明未存储到数据库..why?

人肉调试一小时后..发现某个细节出错了..现在已经搞定了

阅读 4.6k
1 个回答

这里其实 db.session.add(parent) 然后 commit,child 和 parent 就都进去了。 看你的代码,应该还是原生的 sqlalchemy,而且没有配置 backref 不知道是不是这里的问题。

写了个例子,你可以参考下。

https://gitcafe.com/greatghoul/sqlalchemy-samples

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题