models.py 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. from django.db import models
  2. from django.conf import settings
  3. from django.db.models import F
  4. class Config(models.Model):
  5. LEAVE_LEAD_TIME = "leave_lead_time" # 付款码支付__付款码图片
  6. property = models.CharField(max_length=100, verbose_name='属性')
  7. value = models.TextField(blank=True, max_length=250, null=True, verbose_name='值')
  8. class Meta:
  9. db_table = "system_config"
  10. verbose_name = u"综合设置"
  11. default_permissions = ()
  12. permissions = [
  13. ('manage_system_config', u'管理'),
  14. ]
  15. @staticmethod
  16. def get_value(property):
  17. if property in [Config.LEAVE_LEAD_TIME,]:
  18. row = Config.objects.get(property=property)
  19. return row.value
  20. return ''
  21. class Area(models.Model):
  22. PROVINCE = 0
  23. CITY = 1
  24. COUNTY = 2
  25. LEVEL_CHOICES = (
  26. (PROVINCE, u'省级'),
  27. (CITY, u'市级'),
  28. (COUNTY, u'县区级'),
  29. )
  30. name = models.CharField(verbose_name=u'名称', max_length=50, blank=True, null=True)
  31. level = models.IntegerField(verbose_name=u'层级', choices=LEVEL_CHOICES)
  32. province_name = models.CharField(u'所属省', max_length=50, blank=True, null=True)
  33. city_name = models.CharField(u'所属地市', max_length=50, blank=True, null=True)
  34. province = models.ForeignKey('Area', verbose_name='所属省', related_name='province_children', on_delete=models.PROTECT,
  35. blank=True, null=True)
  36. city = models.ForeignKey('Area', verbose_name='所属地市', related_name='city_children', on_delete=models.PROTECT,
  37. blank=True, null=True)
  38. class Meta:
  39. verbose_name = u"行政区域"
  40. db_table = "area"
  41. class School(models.Model):
  42. area = models.ForeignKey(Area, verbose_name=u'行政区域', related_name='school_area', on_delete=models.PROTECT)
  43. name = models.CharField(verbose_name=u'名称', max_length=100, blank=True, null=True)
  44. notes = models.CharField(verbose_name=u'备注', max_length=200, null=True)
  45. enable = models.BooleanField(verbose_name=u"是否在用", default=True)
  46. def __unicode__(self):
  47. return '%s' % (self.name)
  48. class Meta:
  49. verbose_name = u"学校"
  50. db_table = "school"
  51. ordering = ['-id']
  52. default_permissions = ()
  53. permissions = [
  54. ('browse_school', u'查看'),
  55. ('add_school', u'添加学校、班级'),
  56. ]
  57. class Grade(models.Model):
  58. school = models.ForeignKey(School, verbose_name=u'学校', related_name='grade_school', on_delete=models.PROTECT)
  59. name = models.CharField(verbose_name=u'名称', max_length=100, blank=True, null=True)
  60. count = models.PositiveIntegerField(verbose_name="班级数量", default=1)
  61. class Meta:
  62. verbose_name = u"年级"
  63. db_table = "grade"
  64. ordering = ['-id']
  65. class Classes(models.Model):
  66. grade = models.ForeignKey(Grade, verbose_name=u'年级', related_name='classes_grade', on_delete=models.PROTECT)
  67. name = models.CharField(verbose_name=u'名称', max_length=100, blank=True, null=True)
  68. enable = models.BooleanField(verbose_name=u"是否在用", default=True)
  69. def __unicode__(self):
  70. return '%s' % (self.name)
  71. class Meta:
  72. verbose_name = u"班级"
  73. db_table = "classes"
  74. ordering = ['-id']
  75. class Student(models.Model):
  76. school = models.ForeignKey(School, verbose_name=u'学校',related_name='student_school', on_delete=models.PROTECT)
  77. classes = models.ForeignKey(Classes, verbose_name=u'班级', on_delete=models.PROTECT)
  78. name = models.CharField(verbose_name=u'姓名', max_length=20)
  79. gender = models.PositiveSmallIntegerField(choices=settings.GENDER_CHOICES, verbose_name=u"性别", default=settings.MALE)
  80. create_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u"创建人", related_name='student_create_user',
  81. on_delete=models.PROTECT, editable=False)
  82. create_time = models.DateTimeField(verbose_name=u'创建时间', auto_now_add=True, editable=False)
  83. enable = models.BooleanField(verbose_name=u"是否在用", default=True, editable=False)
  84. class Meta:
  85. verbose_name = u"学生"
  86. db_table = "student"
  87. ordering = ['-id']
  88. default_permissions = ()
  89. permissions = [
  90. ('browse_student', u'查看'),
  91. ]
  92. class CommodityLevel(models.Model):
  93. ONE = 1
  94. TWO = 2
  95. THREE = 3
  96. LEVEL_CHOICES = (
  97. (ONE, u'大类'),
  98. (TWO, u'品种'),
  99. (THREE, u'科目'),
  100. )
  101. name = models.CharField(verbose_name=u'名称', max_length=50, blank=True, null=True)
  102. enable = models.BooleanField(verbose_name=u"是否在用", default=True)
  103. home_show = models.BooleanField(verbose_name=u"是否首页展示", default=False)
  104. level = models.IntegerField(verbose_name=u'层级', choices=LEVEL_CHOICES)
  105. category = models.ForeignKey('CommodityLevel', verbose_name='父类', related_name='commodiey_level_children', on_delete=models.PROTECT,
  106. blank=True, null=True)
  107. class Meta:
  108. verbose_name = u"商品级别"
  109. db_table = "commodiey_level"
  110. ordering = ['-id']
  111. default_permissions = ()
  112. permissions = [
  113. ('browse_commodiey_level', u'管理'),
  114. ]
  115. class CommodityCategory(models.Model):
  116. commodiey_level = models.ForeignKey(CommodityLevel, verbose_name=u'商品级别', related_name='commodiey_level', on_delete=models.PROTECT)
  117. name = models.CharField(verbose_name=u'名称', max_length=100, blank=True, null=True)
  118. enable = models.BooleanField(verbose_name=u"是否在用", default=True)
  119. class Meta:
  120. verbose_name = u"商品分类"
  121. db_table = "commodiey_category"
  122. ordering = ['-id']
  123. class CommoditySubject(models.Model):
  124. commodiey_category = models.ForeignKey(CommodityCategory, verbose_name=u'商品分类', related_name='commodiey_category', on_delete=models.PROTECT)
  125. name = models.CharField(verbose_name=u'名称', max_length=100, blank=True, null=True)
  126. enable = models.BooleanField(verbose_name=u"是否在用", default=True)
  127. class Meta:
  128. verbose_name = u"商品科目"
  129. db_table = "commodiey_subject"
  130. ordering = ['-id']