models.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from django.db import models
  2. from django.db.models import Q
  3. from django.conf import settings
  4. class Option(models.Model):
  5. CUSTOMER_SOURCE =1
  6. CATEGORY = 2
  7. STAGE_PROGRESS = 4
  8. TYPE_CHOICES = (
  9. (CUSTOMER_SOURCE, u'客户来源'),
  10. (CATEGORY, u'项目类别'),
  11. (STAGE_PROGRESS, u'阶段进度'),
  12. )
  13. type = models.PositiveSmallIntegerField(choices=TYPE_CHOICES, verbose_name=u"类别")
  14. name = models.CharField(verbose_name=u'名称', max_length=100)
  15. sort = models.PositiveSmallIntegerField(verbose_name=u'排序', help_text=u'越小越靠前', default=1)
  16. notes = models.CharField(max_length=500, verbose_name=u"备注",null=True)
  17. enable = models.BooleanField(verbose_name=u"在用", default=True)
  18. create_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u"创建人", on_delete=models.PROTECT,
  19. editable=False)
  20. track_day = models.IntegerField(verbose_name=u"跟踪天数", null=True,default=0)
  21. end_stage = models.BooleanField(verbose_name=u"是否最终阶段", default=False)
  22. class Meta:
  23. db_table = 'system_option'
  24. verbose_name = u"自定义项"
  25. ordering = ['type', 'sort', ]
  26. index_together = (
  27. 'type',
  28. 'name',
  29. )
  30. default_permissions = ()
  31. permissions = [
  32. ('browse_option', u'查看'),
  33. ('add_option', u'添加'),
  34. # ('delete_option', u'删除'),
  35. ]
  36. @staticmethod
  37. def is_exist(type, name, exclude_id=None):
  38. rows = Option.objects.filter(type=type, name=name)
  39. if exclude_id:
  40. rows = rows.filter(~Q(id=exclude_id))
  41. return rows.count()