models.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # **************************************************************************
  4. # Copyright © 2016 jianglin
  5. # File Name: models.py
  6. # Author: jianglin
  7. # Email: xiyang0807@gmail.com
  8. # Created: 2016-12-13 23:28:30 (CST)
  9. # Last Update:星期日 2016-12-18 19:17:23 (CST)
  10. # By:
  11. # Description:
  12. # **************************************************************************
  13. from flask_maple.models import ModelMixin
  14. from maple.extension import db
  15. board_parents = db.Table(
  16. 'board_parents',
  17. db.Column('board_id', db.Integer, db.ForeignKey('boards.id')),
  18. db.Column('parent_id', db.Integer, db.ForeignKey('boards.id')))
  19. class Board(db.Model, ModelMixin):
  20. __tablename__ = 'boards'
  21. id = db.Column(db.Integer, primary_key=True)
  22. name = db.Column(db.String(81), nullable=False)
  23. description = db.Column(db.Text(128), nullable=False)
  24. parent_id = db.Column(
  25. db.Integer,
  26. db.ForeignKey(
  27. 'boards.id', ondelete="CASCADE"))
  28. parent = db.relationship(
  29. 'Board',
  30. remote_side=[id],
  31. backref=db.backref(
  32. 'children', cascade='all,delete-orphan', lazy='dynamic'),
  33. lazy='joined',
  34. uselist=False)
  35. def __str__(self):
  36. return self.name
  37. def __repr__(self):
  38. return '<Board %r>' % self.name