from django.db import models from django.db.models.deletion import CASCADE from django.utils.translation import gettext_lazy as _ from django.contrib.auth.models import User import datetime import os from django.db.models.signals import post_save, post_delete from django.dispatch import receiver import easyocr class Document(models.Model): name=models.CharField(_('name'), max_length=512) user = models.ForeignKey(User, on_delete=CASCADE) file = models.FileField(upload_to='%y/%m/%d', blank=False) uploaded_date = models.DateField(default=datetime.date.today) class Meta: verbose_name_plural = "Documents" def __str__(self): return self.name @receiver(post_save, sender=Document) def publish_date(sender, instance, created, **kwargs): file = instance.file.path file_format = os.path.basename(file).split('.')[-1] file_name = os.path.basename(file).split('.')[0] file_path = os.path.dirname(file) name = instance.name #os.remove(file) try: reader = easyocr.Reader(['ja','en']) result = reader.readtext(file) print('@@@@@@@@@@') print(result) print('@@@@@@@@@@') except Exception as e: pass @receiver(post_delete, sender=Document) def delete_layer(sender, instance, **kwargs): if instance.file: if os.path.isfile(instance.file.path): os.remove(instance.file.path)