我有这个烧瓶管理界面,但我想改变Create
链接的行为,所以我可以链接到我自己的创建界面,而不是让烧瓶管理员为我创建一个创建表单。还有一点是在With Selected
旁边添加另一个链接,该链接会重定向到另一个页面。这是复杂的几何数据,所以我需要一个完全不同的数据创建界面,Products
只是一个例子。
我真的不想添加另一个管理模板,所以如果可以在python中完成它会很好。
经过一段时间的尝试后,我设法找到了这个解决方案,这正是我想要的:
from flask_admin import Admin
from flask_sqlalchemy import SQLAlchemy
from flask_admin.contrib.sqla import ModelView
from flask import Flask, url_for, redirect
app = Flask(__name__)
db = SQLAlchemy(app)
admin = Admin(app)
class Product(db.Model):
__tablename__ = 'product'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String)
db.create_all()
class SuperHackyFlaskAdminRedirectFakeException(Exception):
pass
@app.errorhandler(SuperHackyFlaskAdminRedirectFakeException)
def handle_fake_errors(error):
return redirect(url_for('index'))
@app.route('/index')
def index():
return 'this is the index'
class ProductView(ModelView):
column_display_pk = True
def redirect_to_index_from_admin(_):
raise SuperHackyFlaskAdminRedirectFakeException()
create_form = redirect_to_index_from_admin
admin.add_view(ProductView(Product, db.session))
正如您可能看到的那样,它确实很酷,我宁愿找到更好的解决方案。
有什么建议吗?
答案 0 :(得分:2)
覆盖create_view
的{{1}}方法。
ProductView