У меня есть проект Django с двумя приложениями: email_app и landing_page_app. landing_page_app.views
включает в себя email_app.views
, так что он может использовать функцию new_lead_email
.Django-Templated-Email: TemplateDoesNotExist при импорте из другого файла
В email_app.views
:
from datetime import datetime
from templated_email import send_templated_mail
def new_lead_email(email):
send_templated_mail(
template_name='new_lead',
from_email='[email protected]',
recipient_list=['[email protected]'],
context={
'email': email,
'current_time': str(datetime.now()),
},
)
В landing_page_app.views
:
from email_app.views import new_lead_email
new_lead_email(email)
я получаю ошибку "TemplateDoesNotExist" для "templated_email/new_lead.txt". Функция new_lead_email
работает правильно, если она не импортирована в landing_page_app.views
(т. Е. Если у меня есть URL-адрес Django new_lead_email
в email_app.views
).
В settings.py, я установил TEMPLATED_EMAIL_TEMPLATE_DIR
и TEMPLATED_EMAIL_FILE_EXTENSION
в каталог, содержащий шаблон «new_lead.email». Это говорит о том, что файл vanilla_django.py в django-templated-email (https://github.com/bradwhittington/django-templated-email/blob/master/templated_email/backends/vanilla_django.py) не импортирует мои settings.py файл правильно.
У вас есть предложения по импорту функций в email_app.views
в другие файлы и правильность работы шаблонов. Благодаря bradwhittington для ОЧЕНЬ полезного класса Django. Я с нетерпением жду, как правильно его использовать!
Спасибо за ответ. Я переключился на общий файл для таких функций. У меня по-прежнему возникает такая же проблема, что функция 'send_templated_mail' неверно« читает »файл settings.py, чтобы знать, где искать шаблоны писем. – gwintrob
Вы делаете include settings.py в своем общем файле и os.path.join (BASE_DIR, 'dir dir')? – dustinmm80