【发布时间】:2016-05-15 22:16:28
【问题描述】:
我想扩展access_control 块以添加身份验证菜单链接。我不想覆盖整个 master.html 模板,所以我创建了 templates/admin/mymaster.html 文件,内容如下:
{% extends 'admin/master.html' %}
{% block access_control %}
{{ super() }}
<ul class="nav navbar-nav navbar-right">
<...>
</ul>
{% endblock %}
现在我有: 我究竟做错了什么? 最近,我以同样的方式覆盖了 admin/index.html:
{% extends 'admin/master.html' %}
{% block body %}
<p>Here I'm going to display some data.</p>
{% endblock %}
而且效果很好。
MCVE:
from flask import Flask, redirect, url_for
from flask.ext.admin.base import MenuLink, Admin, BaseView, expose
app = Flask(__name__, template_folder='templates')
@app.route('/')
def index():
return '<a href="/admin/">Click me to get to Admin!</a>'
flaskadmin = admin.Admin(name='Flasky', template_mode='bootstrap3',
base_template='admin/mymaster.html')
flaskadmin.init_app(app)
# Start app
app.run(debug=True)
【问题讨论】:
-
不应该有父
(),因为在 django 模板中,该方法已经可以调用。你试过只使用{{ block.super }}吗? -
jinga2中如果要扩展block应该有super(),反正没关系,super没有作用,因为是继承问题。
-
你应该在问题中真正提到 jinja2 以避免混淆。
-
很公平,一旦我单击链接,很明显它是烧瓶 + jinja2。我之前没用过flask-admin,希望有经验的人帮忙
-
该代码没有重现问题... WTForms==2.1,Flask-Admin==1.4.0。也有错误。
flaskadmin行中的admin.Admin应该是Admin吗?
标签: python html flask jinja2 flask-admin