djangtemplatedemail:从其他fi导入时,模板不显示

2024-04-27 18:56:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Django项目有两个应用程序:电子邮件应用程序和登录页面应用程序。landing_page_app.views包含email_app.views,因此它可以使用new_lead_email函数。在

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='name@somewhere.com',
        recipient_list=['name@somewhere.com'],
        context={
            'email': email,
            'current_time': str(datetime.now()),
            },
    )

landing_page_app.views中:

^{pr2}$

我收到一个“templatedoesnotextist”错误,因为“templated”email/new_铅.txt". 当new_lead_email函数没有导入到landing_page_app.views中时,new_lead_email函数工作正常(例如,如果我直接在email_app.views中有一个Django URL调用new_lead_email)。在

在设置.py,我将TEMPLATED_EMAIL_TEMPLATE_DIRTEMPLATED_EMAIL_FILE_EXTENSION设置为包含“new”的目录_潜在客户电子邮件“模板。这说明香草_django.pydjango模板电子邮件中的文件(https://github.com/bradwittington/django-templated-email/blob/master/templated_email/backends/vanilla_django.py)不导入我的设置.py正确归档。在

对于如何将email_app.views中的函数导入其他文件并使模板正常工作,您有什么建议吗。感谢Bradwittington提供了一个非常有用的Django课程。我期待着学习如何正确使用它!在


Tags: django函数namefromapp应用程序newdatetime
1条回答
网友
1楼 · 发布于 2024-04-27 18:56:17

你不应该将一个应用程序的视图导入到另一个应用程序的视图中。尝试创建一个实用工具.py把你的功能放在那里。我目前正在为一个项目的通用电子邮件发送功能,使用globalutils.py项目根目录中的文件。在电子邮件模板/txt/中也有来自html/的电子邮件模板。在

下面是方法的前几行

def send_message(template_name, subject_context, body_context, recipients, sender=None, send_email=True, send_internal=True):

subject = render_to_string("%s/%s_%s.%s" % ("email", template_name, "subject", "txt"), subject_context)
t_html = render_to_string("%s/%s_%s.%s" % ("email", template_name, "body", "html"), body_context)
t_text = strip_tags(t_html)

不管哪个应用程序调用它,它都会发送电子邮件。在

相关问题 更多 >