models.py 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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-05-20 13:24:19 (CST)
  9. # Last Update:星期二 2016-6-14 23:20:14 (CST)
  10. # By:
  11. # Description:
  12. # **************************************************************************
  13. from maple import db
  14. from datetime import datetime
  15. class Board(db.Model):
  16. __tablename__ = 'boards'
  17. id = db.Column(db.Integer, primary_key=True)
  18. rank = db.Column(db.Integer, default=1)
  19. board = db.Column(db.String(81), nullable=False)
  20. parent_board = db.Column(db.String(81), nullable=False)
  21. description = db.Column(db.Text(), nullable=False)
  22. count_id = db.Column(db.Integer,
  23. db.ForeignKey('counts.id',
  24. ondelete="CASCADE"))
  25. count = db.relationship("Count",
  26. backref="board",
  27. cascade='all,delete-orphan',
  28. single_parent=True,
  29. uselist=False)
  30. __mapper_args__ = {"order_by": rank.desc()}
  31. def __repr__(self):
  32. return '<Board %r>' % self.board
  33. class Count(db.Model):
  34. __tablename__ = 'counts'
  35. id = db.Column(db.Integer, primary_key=True)
  36. # author_id = db.Column(db.Integer,
  37. # db.ForeignKey('users.id',
  38. # ondelete="CASCADE"))
  39. # author = db.relationship("User",
  40. # backref="counts",
  41. # cascade='all,delete-orphan',
  42. # single_parent=True,
  43. # uselist=False)
  44. drafts = db.Column(db.Integer, default=0)
  45. collects = db.Column(db.Integer, default=0)
  46. inviteds = db.Column(db.Integer, default=0)
  47. follows = db.Column(db.Integer, default=0)
  48. topics = db.Column(db.Integer, default=0)
  49. all_topics = db.Column(db.Integer, default=0)
  50. def __repr__(self):
  51. return '<Count %r>' % self.id
  52. class Notice(db.Model):
  53. __tablename__ = 'notices'
  54. id = db.Column(db.Integer, primary_key=True)
  55. publish = db.Column(db.DateTime, default=datetime.now())
  56. category = db.Column(db.String(81), nullable=False)
  57. content = db.Column(db.Text)
  58. rece_id = db.Column(db.Integer,
  59. db.ForeignKey('users.id',
  60. ondelete="CASCADE"))
  61. rece_user = db.relationship("User",
  62. backref="rece_user",
  63. foreign_keys='Notice.rece_id',
  64. cascade='all,delete-orphan',
  65. single_parent=True,
  66. uselist=False)
  67. send_id = db.Column(db.Integer,
  68. db.ForeignKey('users.id',
  69. ondelete="CASCADE"))
  70. send_user = db.relationship("User",
  71. backref="send_user",
  72. foreign_keys='Notice.send_id',
  73. cascade='all,delete-orphan',
  74. single_parent=True,
  75. uselist=False)
  76. def __repr__(self):
  77. return '<Notice %r>' % self.id