51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
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) |