如何扩展 Flask-admin 模型编辑和创建模板?
How to extend Flask-admin model Edit and Create templates?
根据 flask-admin docs,我可以通过创建文件 templates/admin/index.html
并扩展 admin/master.html
来扩展主要的 flask-admin 仪表板。 HTML 看起来像这样:
{% extends 'admin/master.html' %}
{% block body %}
<h1>HELLO</h1>
{% endblock body %}
但我找不到关于如何扩展模型 CRUD 页面的任何信息:列出、编辑和创建。我需要扩展创建和编辑用户页面,以便我可以将 js 代码添加到表单模板。
是否有可以像 admin/master.html
示例一样扩展的模板?
刚刚在 flask-admin docs 中找到它。我必须创建 templates/edit_user.html
和 templates/create_user.html
。对于 list_users
也是一样的,文档中有一个例子。
在edit_user.html
{% extends 'admin/model/edit.html' %}
{% block body %}
<h1>User Edit View</h1>
{{ super() }}
{% endblock %}
在create_user.html
{% extends 'admin/model/create.html' %}
{% block body %}
<h1>Create View</h1>
{{ super() }}
{% endblock %}
然后将其添加到用户模型视图中:
class UserView(ModelView):
edit_template = 'edit_user.html'
create_template = 'create_user.html'
admin.add_view(UserView(User, db.session))
至于DOC,这是默认命令:
admin = Admin(app, name='microblog', template_mode='bootstrap3')
Add your own CSS here /static/css/main.css:
{% block head_css %}
{{ super() }}
<link rel="stylesheet" href="{{ url_for('static', filename='css/main.css', _external=True) }}" ></link>
{% endblock %}
根据 flask-admin docs,我可以通过创建文件 templates/admin/index.html
并扩展 admin/master.html
来扩展主要的 flask-admin 仪表板。 HTML 看起来像这样:
{% extends 'admin/master.html' %}
{% block body %}
<h1>HELLO</h1>
{% endblock body %}
但我找不到关于如何扩展模型 CRUD 页面的任何信息:列出、编辑和创建。我需要扩展创建和编辑用户页面,以便我可以将 js 代码添加到表单模板。
是否有可以像 admin/master.html
示例一样扩展的模板?
刚刚在 flask-admin docs 中找到它。我必须创建 templates/edit_user.html
和 templates/create_user.html
。对于 list_users
也是一样的,文档中有一个例子。
在edit_user.html
{% extends 'admin/model/edit.html' %}
{% block body %}
<h1>User Edit View</h1>
{{ super() }}
{% endblock %}
在create_user.html
{% extends 'admin/model/create.html' %}
{% block body %}
<h1>Create View</h1>
{{ super() }}
{% endblock %}
然后将其添加到用户模型视图中:
class UserView(ModelView):
edit_template = 'edit_user.html'
create_template = 'create_user.html'
admin.add_view(UserView(User, db.session))
至于DOC,这是默认命令:
admin = Admin(app, name='microblog', template_mode='bootstrap3')
Add your own CSS here /static/css/main.css:
{% block head_css %}
{{ super() }}
<link rel="stylesheet" href="{{ url_for('static', filename='css/main.css', _external=True) }}" ></link>
{% endblock %}