diff --git a/django_yubin/models.py b/django_yubin/models.py index 7a1e9db..352c5e3 100644 --- a/django_yubin/models.py +++ b/django_yubin/models.py @@ -4,6 +4,7 @@ from email import policy from email import encoders as Encoders from email.mime.base import MIMEBase +from functools import partial from django.core.exceptions import FieldError from django.core.mail.message import ( @@ -11,7 +12,7 @@ EmailMessage, EmailMultiAlternatives, ) -from django.db import models +from django.db import models, transaction from django.db.models import F from django.utils.module_loading import import_string from django.utils.text import Truncator @@ -254,7 +255,7 @@ def enqueue(self, log_message=None): self.mark_as(self.STATUS_QUEUED, log_message) try: - tasks.send_email.delay(self.pk) + transaction.on_commit(partial(tasks.send_email.delay, message_pk=self.pk)) return True except Exception as e: self.date_enqueued = backup['date_enqueued']