Отправка файлов 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()
Back to Top