如何在flaskadmin中导出具有关系的列

2024-04-25 19:56:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个问题,在导出到csv表与其他人的关系,而在'简单'工作良好。我要为出口增加一些依据吗? 例如,这是数据库模型公司名称:

class Categoria(db.Model):
    __tablename__ = 'categorie'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    categoria = db.Column(db.String(30), primary_key=True)
    tipo_id = db.Column(db.Integer, db.ForeignKey('tipi.id'), primary_key=True)
    tipo = db.relationship('Tipo', backref='categorie')

这是模型视图

^{pr2}$

生成的错误是:Exception: Unexpected data type <class '__main__.Tipo'>

谢谢你的帮助


Tags: csvkey模型id数据库truedb关系
1条回答
网友
1楼 · 发布于 2024-04-25 19:56:03

这个问题很古老,但我也有同样的问题,我用column_formatters_export解决了它。在

column\u formatters\u export是一个属性,它可以分配给字典,其中键是模型列的名称,它们的值被分配给一个函数,该函数添加了更改格式或所需内容的功能。在

例如,对于您的代码:

class CategorieAdmin(sqla.ModelView):
   column_display_pk = True
   can_export = True
   export_types = ['xls']
   list_columns = ['categoria', 'tipo']
   column_formatters_export = dict(
       categoria=lambda v, c, m, p: '' if m.tipo is None else m.tipo.categoria 
   )

m中,您拥有模型,并且可以获得模型的任何列。另一种可能的解决方案是将表示法添加到模型中。在

例如:

^{pr2}$

相关问题 更多 >