Проблемы при отправке вложенного файла с помощью 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"
Надеюсь, кто-нибудь сможет помочь мне решить эту проблему, чтобы я мог продолжить работу над своим проектом. Мне нужно быстро отправлять электронные письма и использовать асинхронное соединение. Заранее спасибо!