我正在开发一个Flask-Admin项目,想要添加一个联系我们页面。我正在按照https://code.tutsplus.com/tutorials/intro-to-flask-adding-a-contact-page--net-28982上的示例进行操作。
问题在于该示例是针对Flask设计的,而我的所有模板都基于Flask-Admin模板。
问题在于该示例是针对Flask设计的,而我的所有模板都基于Flask-Admin模板。
@app.route('/contact', methods=['GET', 'POST'])
def contact():
form = ContactForm()
if request.method == 'POST':
if form.validate() == False:
flash('All fields are required.')
return render_template('contact.html', form=form)
else:
msg = Message(form.subject.data, sender='contact@example.com',
recipients=['email@email.com'])
msg.body = """
From: %s <%s>
%s
""" % (form.name.data, form.email.data, form.message.data)
mail.send(msg)
return render_template('contact.html', success=True)
elif request.method == 'GET':
return render_template('contact.html', form=form, admin=admin)
contact.html继承了两个管理模板。
{% import 'admin/layout.html' as layout with context -%}
{% extends 'admin/base.html' %}
因此,会抛出错误信息。
jinja2.exceptions.UndefinedError: 'admin_view' 未定义
我知道我可以修改模板以删除扩展管理员模板的部分,但整个网站的导航都是由
{{ layout.menu() }}
{{ layout.menu_links() }}
理想情况下,我希望能够使用管理员模板使“联系我们”页面正常工作。但是我不确定如何传递整个管理员上下文。