models.py 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  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. class Grade(models.Model):
  53. school = models.ForeignKey(School, verbose_name=u'学校', related_name='grade_school', on_delete=models.PROTECT)
  54. name = models.CharField(verbose_name=u'名称', max_length=100, blank=True, null=True)
  55. count = models.PositiveIntegerField(verbose_name="班级数量", default=1)
  56. class Meta:
  57. verbose_name = u"年级"
  58. db_table = "grade"
  59. ordering = ['-id']
  60. class Classes(models.Model):
  61. grade = models.ForeignKey(Grade, verbose_name=u'年级', related_name='classes_grade', on_delete=models.PROTECT)
  62. name = models.CharField(verbose_name=u'名称', max_length=100, blank=True, null=True)
  63. enable = models.BooleanField(verbose_name=u"是否在用", default=True)
  64. def __unicode__(self):
  65. return '%s' % (self.name)
  66. class Meta:
  67. verbose_name = u"班级"
  68. db_table = "classes"
  69. ordering = ['-id']
  70. class Student(models.Model):
  71. school = models.ForeignKey(School, verbose_name=u'学校',related_name='student_school', on_delete=models.PROTECT)
  72. classes = models.ForeignKey(Classes, verbose_name=u'班级', on_delete=models.PROTECT)
  73. name = models.CharField(verbose_name=u'姓名', max_length=20)
  74. gender = models.PositiveSmallIntegerField(choices=settings.GENDER_CHOICES, verbose_name=u"性别", default=settings.MALE)
  75. create_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u"创建人", related_name='student_create_user',
  76. on_delete=models.PROTECT, editable=False)
  77. create_time = models.DateTimeField(verbose_name=u'创建时间', auto_now_add=True, editable=False)
  78. enable = models.BooleanField(verbose_name=u"是否在用", default=True, editable=False)
  79. class Meta:
  80. verbose_name = u"学生"
  81. db_table = "student"
  82. ordering = ['-id']
  83. class CommodityLevel(models.Model):
  84. ONE = 1
  85. TWO = 2
  86. THREE = 3
  87. LEVEL_CHOICES = (
  88. (ONE, u'大类'),
  89. (TWO, u'品种'),
  90. (THREE, u'科目'),
  91. )
  92. name = models.CharField(verbose_name=u'名称', max_length=50, blank=True, null=True)
  93. enable = models.BooleanField(verbose_name=u"是否在用", default=True)
  94. home_show = models.BooleanField(verbose_name=u"是否首页展示", default=False)
  95. level = models.IntegerField(verbose_name=u'层级', choices=LEVEL_CHOICES)
  96. category = models.ForeignKey('CommodityLevel', verbose_name='父类', related_name='commodiey_level_children', on_delete=models.PROTECT,
  97. blank=True, null=True)
  98. class Meta:
  99. verbose_name = u"商品级别"
  100. db_table = "commodiey_level"
  101. ordering = ['-id']
  102. class CommodityCategory(models.Model):
  103. commodiey_level = models.ForeignKey(CommodityLevel, verbose_name=u'商品级别', related_name='commodiey_level', on_delete=models.PROTECT)
  104. name = models.CharField(verbose_name=u'名称', max_length=100, blank=True, null=True)
  105. enable = models.BooleanField(verbose_name=u"是否在用", default=True)
  106. class Meta:
  107. verbose_name = u"商品分类"
  108. db_table = "commodiey_category"
  109. ordering = ['-id']
  110. class CommoditySubject(models.Model):
  111. commodiey_category = models.ForeignKey(CommodityCategory, verbose_name=u'商品分类', related_name='commodiey_category', on_delete=models.PROTECT)
  112. name = models.CharField(verbose_name=u'名称', max_length=100, blank=True, null=True)
  113. enable = models.BooleanField(verbose_name=u"是否在用", default=True)
  114. class Meta:
  115. verbose_name = u"商品科目"
  116. db_table = "commodiey_subject"
  117. ordering = ['-id']