有没有办法修改flask-admin管理员顶部面板上的主页按钮URL链接,以便重定向回主站点?
我可以在custom.html页面中添加链接,例如:
{% extends 'admin/master.html' %}
{% block body %}
<a href="{{ url_for('main.home') }}">Home</a>
{% endblock %}
但这隐藏在自定义页面中。我更喜欢管理员的顶级链接。
答案 0 :(得分:3)
最简单的方法是添加菜单链接并单独保留管理主页(您可能希望将来添加仪表板等):
from flask.ext.admin.menu import MenuLink
# Create admin
admin = Admin(app, name='Admin', url='/')
admin.add_view(ImageView(model=Image, session=db.session, category='Database', name='Images'))
# Add custom link to public website home page
admin.add_link(MenuLink(name='Public Website', category='', url=url_for('main.home')))
答案 1 :(得分:0)
您可以覆盖 get_url
的 MenuLink
方法。这样您就可以解决应用程序上下文问题。
from flask import url_for
from flask_admin import Admin
from flask_admin.menu import MenuLink
class MainIndexLink(MenuLink):
def get_url(self):
return url_for("main.index")
admin = Admin(name="Admin")
admin.add_link(MainIndexLink(name="Main Page"))
def create_app():
app = Flask(__name__)
from app.admin import admin
admin.init_app(app)
return app