Files
Diarios-Oficiais-ALEMS/diarios/signals.py

18 lines
587 B
Python

from django.db.models.signals import post_save
from django.dispatch import receiver
import PyPDF2
from io import BytesIO
from .models import PDFDocument
@receiver(post_save, sender=PDFDocument)
def extract_text(sender, instance, created, **kwargs):
print("Signal disparado!") # Teste se o Signal está funcionando
if created and instance.file:
pdf = PyPDF2.PdfReader(instance.file)
text = []
for page in pdf.pages:
text.append(page.extract_text())
instance.content = "\n".join(text)
instance.save(update_fields=["content"])