У меня есть этот интерфейс администратора фляги, но я хочу изменить поведение ссылки Create
, чтобы я мог ссылаться на свой собственный интерфейс создания вместо того, чтобы позволить администратору фляги создавать форму для меня.Также будет работать добавление еще одной ссылки рядом с With Selected
, которая перенаправляет на другую страницу.Это сложные геометрические данные, поэтому мне нужен совершенно другой интерфейс для создания данных, Products
- просто пример.
![enter image description here](https://i.stack.imgur.com/Sq2NX.png)
Я бы действительно предпочел не делать этогодобавьте еще один шаблон администратора, так что было бы неплохо, если бы это можно было сделать на 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))
Как вы, наверное, уже заметили, это действительно глупо, и я бы предпочел найти лучшее решение.
Есть предложения?