spacepaste

  1.  
  2. Traceback (most recent call last)
  3. File "/usr/lib/python3.6/site-packages/flask/app.py", line 1994, in __call__
  4. return self.wsgi_app(environ, start_response)
  5. File "/usr/lib/python3.6/site-packages/flask/app.py", line 1985, in wsgi_app
  6. response = self.handle_exception(e)
  7. File "/usr/lib/python3.6/site-packages/flask/app.py", line 1540, in handle_exception
  8. reraise(exc_type, exc_value, tb)
  9. File "/usr/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
  10. raise value
  11. File "/usr/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
  12. response = self.full_dispatch_request()
  13. File "/usr/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
  14. rv = self.handle_user_exception(e)
  15. File "/usr/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
  16. reraise(exc_type, exc_value, tb)
  17. File "/usr/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
  18. raise value
  19. File "/usr/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
  20. rv = self.dispatch_request()
  21. File "/usr/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
  22. return self.view_functions[rule.endpoint](**req.view_args)
  23. File "/home/quechon/PycharmProjects/untitled3/myapp/login/routes.py", line 66, in _register_process
  24. timecreated=datetime.datetime.utcnow()
  25. File "<string>", line 4, in __init__
  26. File "/usr/lib/python3.6/site-packages/sqlalchemy/orm/state.py", line 414, in _initialize_instance
  27. manager.dispatch.init_failure(self, args, kwargs)
  28. File "/usr/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 60, in __exit__
  29. compat.reraise(exc_type, exc_value, exc_tb)
  30. File "/usr/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise
  31. raise value
  32. File "/usr/lib/python3.6/site-packages/sqlalchemy/orm/state.py", line 411, in _initialize_instance
  33. return manager.original_init(*mixed[1:], **kwargs)
  34. File "/home/quechon/PycharmProjects/untitled3/myapp/models.py", line 80, in __init__
  35. self.follow(self)
  36. File "/home/quechon/PycharmProjects/untitled3/myapp/models.py", line 47, in follow
  37. if not self.is_following(user):
  38. File "/home/quechon/PycharmProjects/untitled3/myapp/models.py", line 57, in is_following
  39. return self.followed.filter_by(followed_id=user.id).first() is not None
  40. File "/usr/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 1517, in filter_by
  41. return self.filter(sql.and_(*clauses))
  42. File "<string>", line 2, in filter
  43. File "/usr/lib/python3.6/site-packages/sqlalchemy/orm/base.py", line 198, in generate
  44. self = args[0]._clone()
  45. File "/usr/lib/python3.6/site-packages/sqlalchemy/orm/dynamic.py", line 278, in _clone
  46. orm_util.instance_str(instance), self.attr.key))
  47. sqlalchemy.orm.exc.DetachedInstanceError: Parent instance <User at 0x7fe2ac0e6e80> is not bound to a Session, and no contextual session is established; lazy load operation of attribute 'followed' cannot proceed
  48. class User(db.Model):
  49. __tablename__ = 'user'
  50. id = db.Column(db.Integer, primary_key=True)
  51. username = db.Column(db.String(100), unique=True)
  52. email = db.Column(db.String(100))
  53. password = db.Column(db.Binary)
  54. profilepic = db.Column(db.String)
  55. timecreated = db.Column(db.DateTime)
  56. #picture = db.relationship('Picture', backref='owner', lazy='dynamic')
  57. comment = db.relationship('Comment', backref='user', lazy='dynamic')
  58. post = db.relationship('Post', backref='user', lazy='dynamic')
  59. followed = db.relationship('Follow', foreign_keys=[Follow.follower_id],
  60. backref=db.backref('follower', lazy='joined'),
  61. lazy='dynamic',
  62. cascade='all, delete-orphan')
  63. followers = db.relationship('Follow',
  64. foreign_keys=[Follow.followed_id],
  65. backref=db.backref('followed', lazy='joined'),
  66. lazy='dynamic',
  67. cascade='all, delete-orphan')
  68. def follow(self, user):
  69. if not self.is_following(user):
  70. f = Follow(follower=self, followed=user)
  71. db.session.add(f)
  72. def unfollow(self, user):
  73. f = self.followed.filter_by(followed_id=user.id).first()
  74. if f:
  75. db.session.delete(f)
  76. def is_following(self, user):
  77. return self.followed.filter_by(followed_id=user.id).first() is not None
  78. def is_followed_by(self, user):
  79. return self.followers.filter_by(follower_id=user.id).first() is not None
  80. @property
  81. def followed_posts(self):
  82. return Post.query.join(Follow.followed_id == Post.user_id)\
  83. .filter(Follow.follower_id == self.id)
  84. def is_authenticated(self):
  85. return True
  86. def is_active(self):
  87. return True
  88. def is_anonymous(self):
  89. return False
  90. def get_id(self):
  91. return str(self.id)
  92. def __init__(self, **kwargs):
  93. self.follow(self)
  94. def __repr__(self):
  95. return f'<id - {self.id} | - {self.username}>'
  96.