在SQLAlchemy中,我可以向关系对象添加新对象吗?

时间:2013-11-16 15:52:48

标签: python sqlalchemy

我可以在关系对象中添加新对象吗?

Class Parent():
    id = Column(Integer, primary_key=True)
    name = Column(String(10))
    child = relationship('Child', backref='parent', cascade="all, delete-orphan")

Class Child():
    id = Column(Integer, primary_key=True)
    parent = Column(Integer, ForeignKey('parent.id'))
    name = Column(String(10))

parent = Parent('parent1', [Child(name='child1'), Child(name='child2')])
session.add(parent)
session.commit()

上面的代码是插入一个父项及其2个孩子。

我的问题是,

我可以像这样添加来自现有父母的新孩子吗?

parent = session.query(Parent).filter(Parent.id=1).first()
parent.children.append(Child(name='child3'))
session.merge(parent)

我在上面尝试过,它显示了IntegrityError:(IntegrityError)数据类型不匹配u'UPDATE child。

我在这里犯了什么错误吗?

1 个答案:

答案 0 :(得分:1)

试试这个......

parent = session.query(Parent).filter(Parent.id=1).first()
child = Child(parent=parent, name='child3')
session.add(child)