models.py 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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-28 1:4:23 (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 __str__(self):
  32. return self.board
  33. def __repr__(self):
  34. return '<Board %r>' % self.board
  35. class Count(db.Model):
  36. __tablename__ = 'counts'
  37. id = db.Column(db.Integer, primary_key=True)
  38. # author_id = db.Column(db.Integer,
  39. # db.ForeignKey('users.id',
  40. # ondelete="CASCADE"))
  41. # author = db.relationship("User",
  42. # backref="counts",
  43. # cascade='all,delete-orphan',
  44. # single_parent=True,
  45. # uselist=False)
  46. drafts = db.Column(db.Integer, default=0)
  47. collects = db.Column(db.Integer, default=0)
  48. inviteds = db.Column(db.Integer, default=0)
  49. follows = db.Column(db.Integer, default=0)
  50. topics = db.Column(db.Integer, default=0)
  51. all_topics = db.Column(db.Integer, default=0)
  52. # board_id = db.Column(db.Integer,
  53. # db.ForeignKey(Board.id,
  54. # ondelete="CASCADE"))
  55. # board = db.relationship(Board,
  56. # backref=db.backref("count", lazy="dynamic"),
  57. # cascade='all,delete-orphan',
  58. # single_parent=True,
  59. # uselist=False)
  60. def __repr__(self):
  61. return '<Count %r>' % self.id
  62. class Notice(db.Model):
  63. __tablename__ = 'notices'
  64. id = db.Column(db.Integer, primary_key=True)
  65. publish = db.Column(db.DateTime, default=datetime.now())
  66. category = db.Column(db.String(81), nullable=False)
  67. content = db.Column(db.Text)
  68. rece_id = db.Column(db.Integer,
  69. db.ForeignKey('users.id',
  70. ondelete="CASCADE"))
  71. rece_user = db.relationship("User",
  72. backref="rece_user",
  73. foreign_keys='Notice.rece_id',
  74. cascade='all,delete-orphan',
  75. single_parent=True,
  76. uselist=False)
  77. send_id = db.Column(db.Integer,
  78. db.ForeignKey('users.id',
  79. ondelete="CASCADE"))
  80. send_user = db.relationship("User",
  81. backref="send_user",
  82. foreign_keys='Notice.send_id',
  83. cascade='all,delete-orphan',
  84. single_parent=True,
  85. uselist=False)
  86. def __repr__(self):
  87. return '<Notice %r>' % self.id