为什么flask-admin要求mongoengine的ListField具有字段类型?

时间:2014-03-03 10:30:04

标签: python flask flask-admin

我正在尝试使用flask-admin,这看起来非常简单,但我有一个问题。

我在集合中有一个字段,定义为ListField(),列表字段类型的隐式类型为None。我没有为该字段定义类型的原因是因为我保留了一个列表列表,并且没有其他优雅方式(我发现)用mongoengine来实现这一点。

但是,烧瓶管理员不允许我定义这样一个字段,错误为ListField "movements" must have field specified for model

有解决方法吗?

1 个答案:

答案 0 :(得分:1)

flask管理员需要指定字段的原因是因为否则表单呈现不知道要为其显示哪种类型的输入。

例如,如果它是选择字段,日期字段或其他列表字段本身!

你可以这样做:

my_field = db.ListField(field=db.ListField(field=db.StringField()))

最里面的字段可以是任何内容,包括EmbeddedDocumentField或IntField等。

另外,如果你想继续使用ListField而不指定字段类型,你也可以要求flask-admin通过覆盖ModelView将其视为字符串,然后它就会给出你是一个包含字符串的文本框:

[ 'a value', 42, { 'A':'B' } ]

因此,这保留了灵活性,但减少了结构并使验证变得糟糕。

相关问题