It's weird to me that the following code always gets into a "maximum recursion
depth" exception. What I am trying to do here is that the comment model has two
foreign keys referring to two other models each of which should be able to back
reference comments. There must be something wrong in the model definition.
Thanks for pointing it out.
class Comment(db.Model):
__tablename__ = 'comments'
id = db.Column(db.Integer, db.Sequence('comment_id_seq'), primary_key=True)
time_created = db.Column(db.DateTime, default=db.func.now())
body = db.Column(db.UnicodeText, nullable=False)
author_id = db.Column(db.Integer, db.ForeignKey('users.id'), index=True)
story_id = db.Column(db.Integer, db.ForeignKey('stories.id'), index=True)
author = db.relationship("User", backref=db.backref('comments',
order_by=time_created))
story = db.relationship("Story", backref=db.backref('comments',
order_by=time_created))
def __init__(self, body, author, story):
self.body = body
self.author = author
self.story = story
def create_new_comment(author_id, story, body):
author = User.query.get(author_id)
comment = Comment(author, story, body)
try:
db.session.add(comment)
db.session.commit()
return comment
except SQLAlchemyError:
logger.info("problem when creating comment")
db.session.rollback()
return None
story = Story.query.get(1)
create_new_comment(1, story, 'test comment')
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/sqlalchemy/-/c1IslgIkhIIJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.