我目前正在使用Flask-Admin来创建管理界面,但我遇到了障碍。假设我有两个看起来像这样的类:
class Part(db.Model):
id = db.Column(db.Integer, primary_key=True, unique=True)
part_data = db.relationship("PartHistory", backref="part")
name = db.Column(db.String(255))
class PartHistory(db.Model):
id = db.Column(db.Integer, primary_key=True, unique=True)
part_id = db.Column(db.Integer, db.ForeignKey('part.id'))
date_checked = db.Column(db.Date)
Part在PartHistory上有一对多的关系。我想创建一个视图,在一列中显示部件名称,在另一列中显示第一个date_checked。我试过这样的事情:
column_list = ("name", "part_data[0].date_checked")
但这似乎不起作用。我似乎也错了。任何提示将不胜感激。
答案 0 :(得分:3)
一种方法是使用column-property
来定义一个计算列,该列将填充您需要的字段。下面我使用了min
值,但您可以构造任意查询以获取第一个ID(实现该特定后端的最佳方法):
class Part(db.Model):
# ...
date_checked = db.column_property(
db.select([db.func.min(PartHistory.date_checked)]).\
where(PartHistory.part_id==id).\
correlate_except(PartHistory)
)
请注意,您可能无法按此列排序。