如何在 Flask-Admin 中显示参考字段的实际字段?

Posted

技术标签:

【中文标题】如何在 Flask-Admin 中显示参考字段的实际字段?【英文标题】:How to Show Actual Field of Reference Field in Flask-Admin? 【发布时间】:2020-08-03 12:38:27 【问题描述】:

我目前正在使用 mongoengine 设置 Flask-Admin,当呈现作为 ReferenceFields 以及 Embedded 字段的模型列时,我将返回这些字段的“ObjectType Object”。

例如,我有这些模型

class Customer(db.Document):
    name = db.StringField()

class Item(db.EmbeddedDocument):
    name = db.StringField()

class Order(db.DynamicDocument):
    customer = db.ReferenceField('Customer')
    items = db.ListField(db.EmbeddedDocumentField(Item))
    total = db.IntField()

但是当这个模型被这个视图渲染时:

class OrderView(ModelView):
    column_list = ['id', 'customer', 'total', 'items']

我要拿回这张桌子:

如何让“客户对象”呈现为有用的东西,例如 Customer.Id 或 Customer.name,以及 Order.items 字段相同的内容?

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,但最终找到了解决方案。

当您为模型定义类时(稍后将引用该类),您应该重写 str() 方法并请求此类的字符串表示为任意你想要的字段。

class Customer(db.Document):
    name = db.StringField()
    def __str__(self):
        return self.name

【讨论】:

以上是关于如何在 Flask-Admin 中显示参考字段的实际字段?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Flask-Admin 中的某些字段动态替换为 Select2?

如何在 Flask-Admin 中显示角色与用户的关系?

在 Flask-Admin 中替换 Jquery Select2?

Flask-Admin column_formatters 未调用

Flask-Admin使用教程

flask-admin,自定义视图参数设置。