![](/img/trans.png)
[英]How do i use flask-admin column_sortable_list with a database relationship
[英]how to export column with relationship in flask-admin
我在向csv導出與其他人關系的表時遇到問題,而在'簡單'工作中則很好。 我要為出口添加一些基礎嗎? 例如,這是db.Model:
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')
這就是ModelView
class CategorieAdmin(sqla.ModelView):
column_display_pk = True
can_export = True
export_types = ['xls']
list_columns = ['categoria', 'tipo']
生成的錯誤是: Exception: Unexpected data type <class '__main__.Tipo'>
感謝幫助
這個問題已經很老了,但我遇到了同樣的問題,我用column_formatters_export解決了這個問題。
column_formatters_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你有模型,你可以得到你的模型的任何列。 其他可能的解決方案是將表示方法添加到模型中。
例如:
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')
def __repr__(self):
return '%s' % self.categoria
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 str(m.tipo)
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.