Проблемы при отправке вложенного файла с помощью Django-Q

Я тестирую Django-Q, чтобы улучшить свой проект, который предполагает отправку сертификатов об обучении. Однако я столкнулся с проблемой. В журнале появляется следующая ошибка:

Файл "C:\Python311\Lib\multiprocessing\queues.py", строка 244, in _feed obj = _ForkingPickler.dumps(obj)

Файл "C:\Python311\Lib\multiprocessing\reduction.py", строка 51, in dumps cls(buf, protocol).dump(obj) TypeError: cannot pickle '_thread.RLock' object

Когда появляется эта ошибка, начинается бесконечный цикл, который отправляет электронные письма с прикрепленным файлом о сертификатах. Я подозреваю, что где-то допустил ошибку, поэтому любая помощь будет очень признательна!

Вот код в моем файле tasks.py:

from django.core.mail import EmailMessage из django_q.tasks import async_task

def send_email_task(subject, message, recipient_list, attachments=None): """ Асинхронно отправляет электронное письмо. """ email = EmailMessage(subject, message, 'victorgabrieljunior@gmail.com', recipient_list) if attachments: for attachment in attachments: email.attach(*attachment)

async_task(email.send, fail_silently=False)

Вот мой admin.py: def generate_pdf(self, request, queryset): constancia_id = queryset.values_list('id', flat=True)[0]

response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="constancia.pdf"'

#Код для содержимого файла

# Call the function from tasks.py
send_email_task(
    "Constancia de Estudios",
    f'Hola {primer_nombre} {primer_apellido}, tu solicitud de constancia de estudio ha sido exitosa. '
    'Por favor revisa el archivo adjunto para obtener tu constancia de estudio',
    [correo],
    attachments=[(f'constancia_{primer_nombre}_{primer_apellido}.pdf', response.getvalue(), 'application/pdf')]
)
self.message_user(request, "Constancia generada y enviada por correo exitosamente.")
return response

generate_pdf.short_description = "Descarga los items como PDF"

Надеюсь, кто-нибудь сможет помочь мне решить эту проблему, чтобы я мог продолжить работу над своим проектом. Мне нужно быстро отправлять электронные письма и использовать асинхронное соединение. Заранее спасибо!

Вернуться на верх