models.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. # coding=utf-8
  2. from django.db import models
  3. from django.db.models import Q
  4. from django.conf import settings
  5. from django.utils import timezone
  6. class Option(models.Model):
  7. COMMODITY_CATEGORY = 1
  8. EXPRESS_COMPANY = 2
  9. TYPE_CHOICES = (
  10. (COMMODITY_CATEGORY, u'商品类别'),
  11. (EXPRESS_COMPANY, 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=0)
  16. notes = models.CharField(max_length=500, verbose_name=u"备注",null=True)
  17. enable = models.BooleanField(verbose_name=u"在用", default=True)
  18. delete = models.BooleanField(verbose_name=u"删除", default=False, editable=False)
  19. create_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u'创建人', editable=False, on_delete=models.PROTECT)
  20. create_time = models.DateTimeField(verbose_name=u"创建时间", default=timezone.now, editable=False)
  21. class Meta:
  22. db_table = "system_option"
  23. verbose_name = u'自定义项'
  24. ordering = ['type', 'sort', ]
  25. index_together = (
  26. 'type',
  27. 'name',
  28. )
  29. default_permissions = ()
  30. permissions = []
  31. @staticmethod
  32. def is_exist(type, name, exclude_id=None):
  33. rows = Option.objects.filter(type=type, name=name, delete=False)
  34. if exclude_id:
  35. rows = rows.filter(~Q(id=exclude_id))
  36. return rows.count()