Python render_模板中的烧瓶和芹菜翻译超出应用程序上下文错误

Python render_模板中的烧瓶和芹菜翻译超出应用程序上下文错误,python,flask,celery,Python,Flask,Celery,我有一个Flask应用程序,我想从中发送电子邮件,模板中有一个可翻译的字符串,使用Flask Babel @celery.task def send_email(user_email=None): with app.app_context(): html = render_template('user/email_template.html') subject = lazy_gettext(u'Subject Line') send_

我有一个Flask应用程序,我想从中发送电子邮件,模板中有一个可翻译的字符串,使用
Flask Babel

@celery.task
def send_email(user_email=None):
    with app.app_context():
         html = render_template('user/email_template.html')
         subject = lazy_gettext(u'Subject Line')
         send_email(user_email, subject, html)


 @app.route('/index/', methods=['GET', 'POST'])
 @login_required
 def index():
    ...
    send_email.delay(
         user_email=user.email,
    )
email_template.html

当我在没有芹菜的情况下调用
send\u email
功能时,不会发生这种情况。我是否必须将应用程序上下文传递给芹菜

注意:为了清楚起见,缩写为

编辑

完整堆栈跟踪:

[2016-03-28 12:08:30528:ERROR/MainProcess]Task main.send_unlock_email[98f520d4-fadf-4272-8c14-17d6c16bf182]引发意外:AttributeError(“非类型”对象没有属性“ugettext”)
回溯(最近一次呼叫最后一次):
trace_任务中的文件“.envs//local/lib/python2.7/site packages/芹菜/app/trace.py”,第240行
R=retval=fun(*args,**kwargs)
文件“.envs//local/lib/python2.7/site packages/芹菜/app/trace.py”,第438行,在uu protected_u调用中__
返回self.run(*args,**kwargs)
文件“flask projects///views/main.py”,第84行,在send\u unlock\u email中
html=render_模板('user/successfull_unlock.html')
文件“.envs//local/lib/python2.7/site packages/flask/templating.py”,第128行,位于render_模板中
上下文(ctx.app)
文件“.envs//local/lib/python2.7/site packages/flask/templating.py”,第110行,在_render中
rv=template.render(上下文)
文件“.envs//local/lib/python2.7/site packages/jinja2/environment.py”,第989行,在渲染中
返回self.environment.handle\u异常(exc\u info,True)
文件“.envs//local/lib/python2.7/site packages/jinja2/environment.py”,第754行,在句柄中
重放(exc_类型、exc_值、tb)
顶级模板代码中的第1行文件“flask projects///templates/user/successfull_unlock.html”
{{{('Email Test')}

文件“.envs//local/lib/python2.7/site-packages/jinja2/ext.py”,第132行,位于 return uuu context.call(uuu context.resolve('gettext'),*args,**kwargs) 文件“.envs//local/lib/python2.7/site packages/jinja2/ext.py”,第138行,在gettext中 rv=\uuuu context.call(func,\uuuuu字符串) 文件“.envs//local/lib/python2.7/site packages/flask_babel/_init__.py”,第116行,in lambda x:get_translations().ugettext(x), AttributeError:“非类型”对象没有属性“ugettext”
错误发生在哪一行?错误源于html模板。在底部添加了完整的stacktrace。
<p>{{ _('Email Test') }}</p>
 AttributeError: 'NoneType' object has no attribute 'ugettext'
[2016-03-28 12:08:30,528: ERROR/MainProcess] Task main.send_unlock_email[98f520d4-fadf-4272-8c14-17d6c16bf182] raised unexpected: AttributeError("'NoneType' object has no attribute 'ugettext'",)
Traceback (most recent call last):
  File "<path>.envs/<env>/local/lib/python2.7/site-packages/celery/app/trace.py", line 240, in trace_task
    R = retval = fun(*args, **kwargs)
  File "<path>.envs/<env>/local/lib/python2.7/site-packages/celery/app/trace.py", line 438, in __protected_call__
    return self.run(*args, **kwargs)
  File "<path>flask-projects/<env>/<env>/views/main.py", line 84, in send_unlock_email
    html = render_template('user/successfull_unlock.html')
  File "<path>.envs/<env>/local/lib/python2.7/site-packages/flask/templating.py", line 128, in render_template
    context, ctx.app)
  File "<path>.envs/<env>/local/lib/python2.7/site-packages/flask/templating.py", line 110, in _render
    rv = template.render(context)
  File "<path>.envs/<env>/local/lib/python2.7/site-packages/jinja2/environment.py", line 989, in render
    return self.environment.handle_exception(exc_info, True)
  File "<path>.envs/<env>/local/lib/python2.7/site-packages/jinja2/environment.py", line 754, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "<path>flask-projects/<env>/<env>/templates/user/successfull_unlock.html", line 1, in top-level template code
    <p>{{ _('Email Test') }}</p>
  File "<path>.envs/<env>/local/lib/python2.7/site-packages/jinja2/ext.py", line 132, in _gettext_alias
    return __context.call(__context.resolve('gettext'), *args, **kwargs)
  File "<path>.envs/<env>/local/lib/python2.7/site-packages/jinja2/ext.py", line 138, in gettext
    rv = __context.call(func, __string)
  File "<path>.envs/<env>/local/lib/python2.7/site-packages/flask_babel/__init__.py", line 116, in <lambda>
    lambda x: get_translations().ugettext(x),
AttributeError: 'NoneType' object has no attribute 'ugettext'