Closed ad-lebedev closed 8 years ago
Доброго времени суток. Вопрос: зачем вы используете прикрепление файлов к шаблону в БД? У вас эти файлы динамически отправляются для каждого пользователя, или все таки однотипны? Для биллинга в вашем примере нужно использовать стандартные средства при отправке:
# предварительно создаем временный файл: /tmp/request.xlsx
send_db_mail('billing-request', 'user@example.com', files=['/tmp/request.xlsx'])
# удаляем временный файл: /tmp/request.xlsx
и что касается d49caadf-c367-4e06-b424-88bd7f0a0aae.xlsx
- эти файлы лежат на fs в /media/, и есть проблемы с кирилицей. потому сделано так. возможно это можно к примеру вынести в конфигурацию, так как для англоязычных пользователей это не страшно.
https://github.com/LPgenerator/django-db-mailer/blob/master/dbmail/models.py#L38 в этой функции можно сделать проверку флага и возвращать либо оригинально имя файла, либо uuid.
"а что, можно было?! 0_0"(с) файлы генерятся динамически для каждого пользователя да, такой способ гораздо проще и приятней.
нужно смотреть документацию. батарейка много чего умеет на самом деле. посмотрите внимательно апи https://github.com/LPgenerator/django-db-mailer#mail-api то что вы вставляете именно в админке - должно являться статикой. это для всяких писем с инструкциями, промо и тд и тп. и статичные файлы используют uuid. это по идее можно исправить способом в предыдущем комменте.
Приветствую!
Прикрепляю файл к шаблону в коде:
Есть 2 проблемы:
DataError: value too long for type character varying(100)
Это ограничение стандартного файлового поля в Django, которая представляет файл в базе в виде varchar(100). Помогло увеличение длины поля в классе MailFile:Я конечно могу просто переопределить этот класс у себя, но мне кажется, проблему можно исправить в Вашем алгоритме генерации имен вложений.
d49caadf-c367-4e06-b424-88bd7f0a0aae.xlsx
, хотя мне бы хотелось видеть там свое имя, указанное при создании файла.