繁体   English   中英

模型中的Flask-Admin和自定义字段

[英]Flask-Admin and custom field in model

我有类似于以下表格:

class User(Base):
    id    = Column(Integer, primary_key=True)
    name  = Column(String(255, unique=True)

class Document(Base):
    id    = Column(Integer, primary_key=True)
    name  = Column(String(255, unique=True)
    customer_id = Column(ForeignKey('User.id'))

我想在Flask-Admin的ModelView(sqla)中列出用户以及他们创建的文档数(func.count(Document))。 是否有可能使用SqlAlchemy和标准的Flask-Admin ModelView实现此功能,而无需指定自定义SQL查询?

您可以通过重写ModelView类的get_query()函数来实现此目的。 这将创建您编写的查询的视图,而不是定义的架构。

您可能还需要一个user_document_table作为查询中的联接。

例如:

class UserView(ModelView):

column_list = (
    "user_name",
    "n_documents"
)

def get_query(self):
    return (
        self.session.query(
            User.name.label("user_name"), 
            func.count(Document.id).label("n_documents")
        )
        .join(user_document_table)
        .join(Document)
        .group_by(User.id)
    )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM