我写了两个这样的模型:
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)
我想知道有没有更好的方法呢?感谢。
答案 0 :(得分:1)
嗯,你的代码没有错。但是,您可以使用.append()方法简化add_comment:
def add_comment(self, comment):
comment = ItemTypeComment()
self.comments.append(comment)
这样就不必设置comment.itemtype,也可以手动将新对象添加到DBSession中。