Отправка файлов csv с данными из базы данных на электронную почту python
У меня есть база данных и есть таблица Users.
id | name | last_name | status |
---|---|---|---|
1 | Джон | Черный | активный |
2 | Дрейк | Белл | отключен |
3 | Пеп | Гвардиола | активный |
4 | Steve | Salt | disabled |
Я хочу отправить на один email два csv файла. Первый будет с именем sucess.csv и в нем будут ID из таблицы, со статусом active, а второй csv будет с именем failed.csv и в нем будут ID со статусом disabled. Сейчас мой код выглядит следующим образом:
def send_user_report():
logger.info('User report generating')
user_data = {}
user = Users.objects.values('id', 'status')
buffer = io.StringIO()
writer = csv.writer(buffer)
writer.writerow([])
email = EmailMessage('Users report', body, to=settings.EMAIL_TEST)
email.attach('sucess_report.csv', buffer.getvalue(), 'text/csv')
email.send()
Запись в два вложения:
def send_user_report():
logger.info('User report generating')
user_data = {}
user = Users.objects.values('id', 'status')
buffer = io.StringIO()
writer = csv.writer(buffer)
for user in Users.objects.filter(status='active')
writer.writerow([user.pk])
buffer2 = io.StringIO()
writer2 = csv.writer(buffer2)
for user in Users.objects.filter(status='disabled')
writer2.writerow([user.pk])
email = EmailMessage('Users report', '', to=settings.EMAIL_TEST)
email.attach('sucess_report.csv', buffer.getvalue(), 'text/csv')
email.attach('failed_report.csv', buffer2.getvalue(), 'text/csv')
email.send()