[英]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.