6

我正在尝试使用flask-admin,这看起来很简单,但是我遇到了问题。

我在集合中有一个字段,它被定义为 a ,列表字段类型ListField()的隐式类型为 。None我没有为该字段定义类型的原因是因为我保留了一个列表列表,并且没有其他优雅的方法(我发现)可以使用 mongoengine 完成此操作。

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

有没有解决的办法?

4

1 回答 1

1

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

例如,如果它是选择字段、日期字段或另一个列表字段本身!

你可以这样做:

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

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

此外,如果您想在不指定字段类型的情况下继续使用ListField,您还可以要求 flask-admin 通过覆盖将其视为字符串,ModelView然后它会给您一个包含字符串的文本框:

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

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

于 2016-01-08T08:21:47.577 回答