Возможно, я не смогу предоставить вам что-либо в отношении кода, который я пробовал.Но ни один из поисков или исследований не мог дать мне работающего результата.
Что я пытаюсь сделать? У меня есть форма, в которой пользователь отправляет файл CSV.Этот файл обрабатывается в бэкэнде для извлечения данных из БД.Данные, восстановленные из БД, снова записываются в CSV и отправляются пользователю по почте.
Эта обработка занимает около 5-10 минут.Поэтому я хочу показать пользователю сообщение, что ваша работа находится в процессе выполнения, и вы получите файл CSV, как только он будет завершен.
Мой код на данный момент.
def bulkserachpro(request):
with request.FILES['searchnum'] as csvfile:
spamreader = csv.reader(csvfile,dialect=excel)
next(spamreader)
a = []
b = []
for row in spamreader:
a.append((row[0]).upper())
data_list = nummodel.objects.filter(number__in=a)
csvfile = StringIO.StringIO()
csvwriter = csv.writer(csvfile)
csvwriter.writerow(['a','b'])
for data in data_list:
csvwriter.writerow([data.a,data.b])
message = EmailMessage("Hello","Your report","email@gmail.com",["emailto@gmail.com"])
message.attach('invoice.csv', csvfile.getvalue(), 'text/csv')
message.send()
return render(request,'bulkpro.html',messages.add_message(request, messages.SUCCESS,'File uploaded Succesfully.'))
Этот код выполняет свою работу.Но так как пользователь не может ждать 5-10 минут, он получит сообщение об ошибке тайм-аута.Что я должен изменить здесь, чтобы пользователь получил следующее сообщение, и после того, как обработка будет завершена, он получит электронное письмо с вложением.
Ваш файл получен, он будет обработан и отправлен на ваш почтовый идентификатор.