标签: flask-admin

Flask-Admin自定义日期时间视图

使用flask-admin时,datetime字段的列表视图如下所示:"2014-02-22 13:30:43".我想知道是否可以更改此默认视图,如下所示:"2014-02-22"或"2014-02-22 13:30".

谢谢

flask flask-admin

5
推荐指数
1
解决办法
2896
查看次数

如何将flask-admin添加到蓝图中?

例如:

from flask import Flask
from flask.ext.admin import Admin, BaseView, expose

class MyView(BaseView):
    @expose('/')
    def index(self):
        return self.render('index.html')

app = Flask(__name__)

admin = Admin(app)
admin.add_view(MyView(name='Hello'))

app.run()
Run Code Online (Sandbox Code Playgroud)

但是,如果我需要一个名为"views.py"的新文件,我该如何将视图添加views.py到管理员?我需要使用蓝图吗?

flask flask-admin

5
推荐指数
3
解决办法
5086
查看次数

如何在Flask-Admin表单中处理有序的多对多关系(关联代理)?

我在声明性模型页面调查之间存在多对多关系,它由关联代理调解,因为调查中页面出现的顺序很重要,因此交叉链接表有一个额外的字段.

from flask.ext.sqlalchemy import SQLAlchemy
from sqlalchemy.ext.associationproxy import association_proxy
db = SQLAlchemy()

class Page (db.Model):
    id = db.Column(db.Integer, primary_key = True)
    surveys = association_proxy('page_surveys', 'survey')

class Survey (db.Model):
    id = db.Column(db.Integer, primary_key = True)
    pages = association_proxy('survey_pages', 'page')

class SurveyPage (db.Model):
    survey_id = db.Column(db.Integer, db.ForeignKey('survey.id'), primary_key = True)
    page_id = db.Column(db.Integer, db.ForeignKey('page.id'), primary_key = True)
    ordering = db.Column(db.Integer)  # 1 means "first page"
    survey = db.relationship('Survey', backref = 'survey_pages')
    page = db.relationship('Page', backref = 'page_surveys')
Run Code Online (Sandbox Code Playgroud)

现在我想通过Flask-Admin提供一个表单,让用户将页面添加到调查中.理想情况下,用户将页面填充到表单中的顺序决定了它的值 …

sqlalchemy jinja2 flask jquery-select2 flask-admin

5
推荐指数
1
解决办法
3471
查看次数

如何使用Flask-Admin实现AJAX表单提交?

我正在尝试在现有的Flask支持的单页面应用程序上使用Flask-Admin页面.有没有办法在使用AJAX POST机制编辑/创建模型时替换现有的页面重载POST方法表单提交?

python ajax flask-admin

5
推荐指数
0
解决办法
400
查看次数

flask-admin:将 inline_models 渲染为列表视图?

我有一个Motion模型,里面有很多Votes. 我将投票显示为inline_modelin flask-admin。是否可以像list_view模板一样将投票呈现为表格?而不是这样:

inline_models 列表

python flask flask-admin

5
推荐指数
1
解决办法
1199
查看次数

在不修改模型的情况下更改Flask-Admin中的模型表示

我有一个带有__repr__方法的模型,用于在Flask-Admin中显示.我想显示不同的值,但不想更改模型.我找到了这个答案,但仍然需要修改模型.如何为Flask-Admin指定单独的表示?

class MyModel(db.Model):
    data = db.Column(db.Integer)

    def __repr__(self):
        return '<MyModel: data=%s>' % self.data
Run Code Online (Sandbox Code Playgroud)

更新

文件:models.py

class Parent(db.Model):
    __tablename__ = "parent"
    id = db.Column(db.Integer, primary_key=True)
    p_name = db.Column(db.Text)
    children = db.relationship('Child', backref='child', lazy='dynamic')

    def __repr__(self):
        return '<Parent: name=%s' % self.p_name


class Child(db.Model):
    __tablename__ = "child"
    id = db.Column(db.Integer, primary_key=True)
    c_name = db.Column(db.Text)
    parent_id = db.Column(db.Integer, db.ForeignKey('parent.id'))
Run Code Online (Sandbox Code Playgroud)

文件:admin.py

from flask.ext.admin import Admin
from flask.ext.admin.contrib.sqla import ModelView
from app import app, db
from models import Parent, Child


admin = …
Run Code Online (Sandbox Code Playgroud)

python flask flask-admin

5
推荐指数
1
解决办法
709
查看次数

Flask-Admin中的自定义和可排序列

我正在使用Flask-Admin和SQLAlchemy,并且很难在listview中创建自定义的可排序字段.我是这样的用户和照片模型:

class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), unique=True, index=True)
    photos = db.relationship('Photo', backref='user', lazy='dynamic', cascade='all, delete-orphan')

class Photo(db.Model):
    __tablename__ = 'photos'
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), index=True)
    filename = db.Column(db.String(128))
    publish = db.Column(db.Boolean, index=True)
    date = db.Column(db.DateTime, default=datetime.now)
Run Code Online (Sandbox Code Playgroud)

然后我创建一个自定义视图(UserView),创建一个名为'test'的自定义字段,并使用column_formatters重写它以包含照片的数量.虽然结果是正确的,但该字段不可排序.还有另一种解决方法吗?

class UserView(sqla.ModelView):

    column_list = ('username', 'test')

    def _count_formatter(view, context, model, name):
        return model.photos.count()

    column_formatters = {
        'test': _count_formatter
    }

    def is_accessible(self):
        return login.current_user.is_authenticated
Run Code Online (Sandbox Code Playgroud)

sqlalchemy flask flask-sqlalchemy flask-admin

5
推荐指数
1
解决办法
1736
查看次数

如何在flask-admin中导出具有关系的列

我在将与其他人的关系的表格导出到 csv 时遇到问题,而在“简单”中运行良好。我必须添加一些导出的基础吗?例如,这是 db.Model:

class Categoria(db.Model):
    __tablename__ = 'categorie'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    categoria = db.Column(db.String(30), primary_key=True)
    tipo_id = db.Column(db.Integer, db.ForeignKey('tipi.id'), primary_key=True)
    tipo = db.relationship('Tipo', backref='categorie')
Run Code Online (Sandbox Code Playgroud)

这是 ModelView

class CategorieAdmin(sqla.ModelView):
    column_display_pk = True
    can_export = True
    export_types = ['xls']
    list_columns = ['categoria', 'tipo']
Run Code Online (Sandbox Code Playgroud)

错误生成是: Exception: Unexpected data type <class '__main__.Tipo'>

感谢帮助

python csv export flask-admin

5
推荐指数
1
解决办法
1192
查看次数

Flask-Admin 找不到反向关系

我已经有一个使用我的 SQLAlchemy 模型的应用程序,我现在正在尝试在顶部添加一个 Flask 管理网站来管理数据库中的一些数据。这个模型已经在整个现有应用程序中设置和工作,所以我知道关系配置正确。在我的数据库中,data_package 表对供应商表有一个 FK,这已作为关系添加。但是,当我创建一个烧瓶模型视图以允许编辑 data_package 时,我收到了错误:

例外:找不到模型的反向关系

我添加了下面代码的一个子集,还有更多的列和逻辑,但这是我必须尝试和测试问题修复程序的最低限度。问题发生是因为我添加了inline_models = (Supplier, )这是我需要的,因为我想选择允许更改数据包的供应商。

抛出异常的代码行是https://github.com/flask-admin/flask-admin/blob/master/flask_admin/contrib/sqla/form.py#L558。这样做的原因是关系方向被定义为 ONETOMANY,并且有一个检查以确保方向是 MANYTOONE 或 MANYTOMANY

Base = declarative_base()


class Supplier(Base):
    __tablename__ = 'supplier'
    id = Column(Integer, primary_key=True)
    name = Column(String(100), nullable=False)

class DataPackage(Base):
    __tablename__ = 'data_package'
    id = Column(Integer, primary_key=True)
    name = Column(String(100), nullable=False)

    supplier_id = Column(Integer, ForeignKey('supplier.id'), index=True, nullable=False)
    supplier = relationship("Supplier", backref='packages')

class DataPackageAdminView(ModelViewOnly):
    form_columns = ['name', 'supplier']
    inline_models = (Supplier,)

def create_app():
    settings.configure_orm()

    app = Flask(__name__)
    app.config.from_pyfile('config.py')

    @app.route('/')
    def …
Run Code Online (Sandbox Code Playgroud)

sqlalchemy flask flask-sqlalchemy flask-admin

5
推荐指数
0
解决办法
1301
查看次数

Flask 管理员将 inline_models 显示为列表

我尝试使用 inline_models 创建 Flask-Admin 视图。

这有效,但它逐项呈现内联项。

class MyViewFeatureEngineering(sqla.ModelView):
    inline_models = ((Feature_columns),)
Run Code Online (Sandbox Code Playgroud)

但我想将其显示为列表。

它可以是可编辑的,也可以是只读的,为几列设置了 column_editable_list。

这是否可以通过 Flask-Admin 实现,或者现在是切换到完全自定义模板的时候了吗?到目前为止,似乎几乎所有东西都可以根据自己的需要进行覆盖。

谢谢

python flask flask-sqlalchemy flask-admin

5
推荐指数
0
解决办法
283
查看次数