models.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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, null=True)
  14. image = models.CharField(verbose_name=u'图片路径', max_length=250,blank=True)
  15. width = models.IntegerField(verbose_name=u"图片宽度",blank=True, default=0)
  16. height = models.IntegerField(verbose_name=u"图片高度",blank=True, default=0)
  17. class Meta:
  18. db_table = 'operation_help'
  19. ordering = ['-id', 'tenant']
  20. verbose_name = u'运维帮助'
  21. def _add_img(self, file, user_id):
  22. width = None
  23. height = None
  24. path = "operation_help/"
  25. filename = UploadFile(file, path, user_id)
  26. fullname = "%s%s" % (settings.MEDIA_ROOT, filename)
  27. try:
  28. img = Image.open(fullname)
  29. width, height = img.size
  30. # 缩略图压缩宽或高最大200
  31. if width > 1440:
  32. img = img.resize((1440, int((height / width) * 1440)), Image.ANTIALIAS)
  33. img.save(fullname)
  34. width, height = img.size
  35. except:
  36. pass
  37. self.image = "%s%s" % (settings.MEDIA_URL, filename)
  38. self.width = width
  39. self.height = height
  40. self.save()
  41. def del_images(self):
  42. image = self.image
  43. # self.delete()
  44. DeleteFile(image)