flask-admin add_view 未将模型添加到管理视图

问题描述 投票:0回答:1

我有一个烧瓶应用程序,我正在尝试在其中使用

flask-admin
。我安装了
flask-admin
并在我的
__init__.py
文件中初始化了它。

__init__.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_admin import Admin
from cms.config import Config

db = SQLAlchemy()
admin = Admin()


def create_app(config_class=Config):
    app = Flask(__name__)
    app.config.from_object(Config)

    db.init_app(app)
    admin.init_app(app)

    from cms.main.routes import main

    app.register_blueprint(main)

    return app

然后在我的

models.py
中,我将一个模型添加到管理视图中。

models.py

from flask_admin.contrib.sqla import ModelView
from cms import db, admin


class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    password = db.Column(db.String(60), nullable=False)

    def __repr__(self):
        return f"User('{self.username}', '{self.email}')"

    def __str__(self):
        return self.username

admin.add_view(ModelView(User, db.session))

但这不会在管理视图中显示“用户”选项卡。管理视图中只有“主页”选项卡。我在这里缺少什么?

flask flask-sqlalchemy flask-admin
1个回答
0
投票

默认情况下,Flask-Admin 使用蓝图作为其路由。确保您已在应用程序中注册 Flask-Admin 蓝图。您可以通过修改您的

来做到这一点

init.py

from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView

admin = Admin()

def create_app(config_class=Config):
    app = Flask(__name__)
    app.config.from_object(Config)

    # ...

    admin.init_app(app)

    # Import your model and add it to the admin view
    from cms.models import User
    admin.add_view(ModelView(User, db.session))

    # ...

    return app
© www.soinside.com 2019 - 2024. All rights reserved.