我需要将一个SQLAlchemy模型类的自定义属性添加到我的Flask-Admin视图中.它做了一些我希望在列列表中显示的计算.
class Withdrawal(db.Model): __tablename__ = 'withdrawals' id = db.Column(db.Integer, primary_key=True) fabric_id = db.Column(db.Integer, db.ForeignKey('fabrics.id')) fabric = db.relationship('Fabric', backref='withdrawals') length = db.Column(db.Float) class Fabric(db.Model): __tablename__ = 'fabrics' name = db.Column(db.String(256)) id = db.Column(db.Integer, primary_key=True) org_length = db.Column(db.Float) @property def length(self): return self.org_length - sum(x.length for x in self.withdrawals)
我将Fabric.length
属性添加到我的视图中,column_list
但不会在新列中看到值.
class FabricModelView(ModelView): column_list = ('org_length', Fabric.length)
结果应该是具有计算长度的列,但实际上没有任何内容显示在添加的列中.
所以我的问题是:有没有办法在Flask-Admin视图中向列列表添加自定义属性?
我相信如果你使用字符串它会工作得很好:
column_list = ('org_length', 'length')