1) Obtenga una línea LARGA de valores separados por comas (el mío comienza a fallar en 998 caracteres).
2) Envíelo a través del correo electrónico de Django: message.attach('some.csv', csv_file, 'text/csv')
3) Abra el archivo en el correo electrónico y observe que sus valores se han escrito en la segunda fila, en lugar de permanecer en una sola fila.
Aporte:
csv_file = 'FIELD_1,FIELD_2,FIELD_3,...,FIELD_998, FIELD_999'
Salida esperada (todo en una fila):
FIELD_1 | FIELD_2 | FIELD_3 | ... | FIELD_998 | FIELD_999
Salida real:
FIELD_1 | FIELD_2 | FIELD_3 | ... | FIELD_ 998 | FIELD_999
(Tenga en cuenta que este es un ejemplo, comienza a fallar en 998 caracteres, no específicamente en las cadenas)
Esto sucede a través del archivo adjunto de correo electrónico de django que se envía como text/csv y las limitaciones de eso. Es casi actuar como un 'ajuste de palabras'. Cambiar text/csv a application/octet-stream , deja los datos como están. https://docs.djangoproject.com/en/1.11/topics/email/#emailmessage-objects