【问题标题】:How to Show Actual Field of Reference Field in Flask-Admin?如何在 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 字段相同的内容?

【问题讨论】:

    标签: python flask mongoengine flask-admin flask-mongoengine


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 2022-12-09
      • 2014-02-20
      • 2017-09-15
      • 2023-01-03
      • 2018-06-17
      • 2021-04-28
      相关资源
      最近更新 更多