models.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. from django.db import models
  2. from django.conf import settings
  3. from PIL import Image
  4. from apps.tenant.models import Tenant
  5. from utils.file_operation import UploadFile, DeleteFile
  6. class OperationHelp(models.Model):
  7. title = models.CharField(verbose_name=u'标题', max_length=100)
  8. content = models.TextField(verbose_name=u'内容')
  9. create_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u"创建人", on_delete=models.PROTECT,
  10. editable=False)
  11. create_time = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
  12. enable = models.BooleanField(verbose_name=u"在用", default=True)
  13. tenant = models.ForeignKey(Tenant, verbose_name=u'企业', editable=False, on_delete=models.PROTECT)
  14. class Meta:
  15. db_table = 'operation_help'
  16. ordering = ['-id', 'tenant']
  17. verbose_name = u'运维帮助'
  18. class OperationHelpImg(models.Model):
  19. operation_help = models.ForeignKey(OperationHelp,verbose_name=u'运维帮助', on_delete=models.PROTECT,null=True)
  20. image = models.CharField(verbose_name=u'图片路径', max_length=250)
  21. width = models.IntegerField(verbose_name=u"图片宽度")
  22. height = models.IntegerField(verbose_name=u"图片高度")
  23. tenant = models.ForeignKey(Tenant, verbose_name=u'企业', editable=False, on_delete=models.PROTECT, null=True)
  24. class Meta:
  25. db_table = 'operation_help_img'
  26. ordering = ['-id']
  27. verbose_name = u'运维帮助图片'
  28. def _add_img(self,file,user_id):
  29. width = None
  30. height = None
  31. path = "operation_help_img/"
  32. filename = UploadFile(file, path, user_id)
  33. fullname = "%s%s" % (settings.MEDIA_ROOT, filename)
  34. try:
  35. img = Image.open(fullname)
  36. width, height = img.size
  37. # 缩略图压缩宽或高最大200
  38. if width > 1440:
  39. img = img.resize((1440, int((height / width) * 1440)), Image.ANTIALIAS)
  40. img.save(fullname)
  41. width, height = img.size
  42. except:
  43. pass
  44. self.image = "%s%s" % (settings.MEDIA_URL, filename)
  45. self.width = width
  46. self.height = height
  47. self.save()
  48. def del_images(self):
  49. image = self.image
  50. # self.delete()
  51. DeleteFile(image)
  52. class OperationHelpRadio(models.Model):
  53. radio_path = models.CharField(verbose_name=u'视频路径', max_length=250)
  54. radio_size = models.FloatField(verbose_name="视频大小",blank=True, default=0)
  55. radio_time = models.FloatField(verbose_name="视频时长",blank=True, default=0)
  56. class Meta:
  57. db_table = 'operation_help_radio'
  58. ordering = ['-id']
  59. verbose_name = u'运维帮助视频'
  60. def _add_radio(self, file, user_id):
  61. path = "operation_help_radio/"
  62. filename = UploadFile(file, path, user_id)
  63. fullname = "%s%s" % (settings.MEDIA_ROOT, filename)
  64. # try:
  65. # img = Image.open(fullname)
  66. # width, height = img.size
  67. # # 缩略图压缩宽或高最大200
  68. # if width > 1440:
  69. # img = img.resize((1440, int((height / width) * 1440)), Image.ANTIALIAS)
  70. # img.save(fullname)
  71. # width, height = img.size
  72. # except:
  73. # pass
  74. self.radio_path = "%s%s" % (settings.MEDIA_URL, filename)
  75. self.save()
  76. def del_radio(self):
  77. radio = self.radio
  78. # self.delete()
  79. DeleteFile(radio)