我写了两个这样的模型:
class ItemType(Base, DBBase):
__tablename__ = 'itemtypes'
id = Column(Integer, primary_key = True)
name = Column(String), nullable = True)
comments = relationship('ItemTypeComment')
class ItemTypeComment(Base, DBBase):
__tablename__ = 'itemtypecomments'
id = Column(Integer, primary_key = True)
comment = Column(String), nullable = True)
itemtype_id = Column(Integer, ForeignKey('itemtypes.id'), nullable = True)
itemtype = relationship('ItemType')
在这里我们可以看到,一个ItemType可以有多个ItemTypeComments。现在我想向类ItemType添加一个方法,以便轻松地向其添加注释。目前,我写道:
def add_comment(self, comment):
comment = ItemTypeComment()
comment.comment = comment
comment.itemtype = self
DBSession.add(comment)
我想知道有没有更好的办法?谢谢。
最佳答案
好吧,你的密码没问题。但是,您可以使用.append()方法稍微简化add_comment:
def add_comment(self, comment):
comment = ItemTypeComment()
self.comments.append(comment)
这样就无需设置comment.itemtype,也无需手动将新对象添加到DBSession。
关于python - 如何在SQLAlchemy中将对象添加到多对一关系?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12344664/