当前位置: 首页 > 面试题库 >

Flask-Admin默认过滤器

阮喜
2023-03-14
问题内容

我只想在Flask-Admin模型列表视图中显示已付款的订单。

这是models.py:

class Order(db.Model):
   id = db.Column(db.Integer, primary_key=True)
   amount = db.Column(db.Integer)
   description = db.Column(db.String)
   paid = db.Column(db.Boolean, default=False)

这是Flask-Admin的ModelView:

class OrderView(ModelView):
    column_filters = ("paid")


admin.add_view(OrderView(Order, db.session))

过滤器工作正常,但我想将此过滤器设为默认值。更好的是,不要使用过滤器,而只显示Order.query.filter(Order.paid==True)查询输出的顺序。

Flask-Admin是否可以使用?


问题答案:

我们通过覆盖ModelView在我们的应用程序中执行此操作。

https://github.com/mrjoes/flask-
admin/blob/master/flask_admin/contrib/sqla/view.py#L654

我仔细研究了Flask-Admin的源代码,自从我们上次编辑该代码以来,它们使API更加易于使用,因为您看起来可以做到:

from flask.ext.admin.contrib.sqla.view import ModelView, func

class PaidOrderView(ModelVew):
    def get_query(self):
      return self.session.query(self.model).filter(self.model.paid==True)

    def get_count_query(self):
      return self.session.query(func.count('*')).filter(self.model.paid==True)

(我们重写了get_list(),但效果并不那么好。)

然后可以像这样使用它:

admin.add_view(PaidOrderView(Order, db.session))

让我知道这是否不适合您,我可以再看看。



 类似资料:
  • 问题内容: 如何从“全部”更改默认过滤器选择?我有一个名为领域它有三个值:和。当我在Django admin中使用时,默认情况下将过滤器设置为“全部”,但默认情况下我想将其设置为待处理。 问题答案:

  • 参见文档“10. Web”部分

  • Pear Admin 社区拥抱 Python 生态,基于 Flask 1.12 推出 Flask Admin 后台管理系统,得益于Python 的生态广泛应用,通过使用本系统,即可快速构建你的功能业务; 项目旨在为 Python 开发者提供一个后台管理系统,成为您构建信息管理系统,物联网后台....等等应用时灵活,简单的快速开发平台; 版本说明 Common [ 通用版本 ] -- 基于 Mysq

  • 问题内容: 我有一个与另一个对象具有多对多关系的对象。 在Django Admin中,这会在多重选择框中产生很长的列表。 我想过滤掉ManyToMany关系,所以我只获取客户选择的城市中可用的类别。 这可能吗?我需要为其创建一个小部件吗?如果是这样,我该如何将行为从标准ManyToMany字段复制到该字段,因为我也希望filter_horizo​​ntal函数。 这些是我的简化模型: 问题答案:

  • 问题内容: 我必须从Spring Security堆栈中排除一个默认过滤器。因此,所有过滤器都应照常工作。看来我找到了解决方法,请创建自定义FilterChainProxy: 如您所见,它具有获取过滤器列表的构造函数,因此我将能够根据需要从链中删除一个过滤器,其余所有过滤器将照常工作。但是我不能在这样的构造函数的安全配置中制作bean。如果我用 当然,使用默认构造函数构建对象。好的,我尝试用一​​

  • vue-admin-flask-example vue-admin和flask前后端分离的小例子 本地预览 Docker 本机安装docker的话直接在根目录运行 docker-compose up -d 再打开打包的目录dist下的index.html即可 源码 依此按照下面命令 D:\Github\vue-admin-flask-example$ npm installD:\Github\vu