Flask admin:在嵌入式文档中为SelectField添加动态选择

时间:2017-07-27 09:14:32

标签: mongoengine flask-admin embedded-documents

我在嵌入文档中有一个字符串字段,并将该字段覆盖为选定字段。 覆盖后,我将一个空的选项列表作为参数添加到选择的字段中。

问题是,在表单访问时,我们尝试向所选字段添加一些动态选择,但由于某种原因,这会失败。

我们如何添加一些动态选择? 我需要使用某种预处理器来完成这项工作,因为数据来自于在所有模型之后加载的数据库。

类:

class BadgeDoc(EmbeddedDocument):
    parent_id = ObjectIdField()
    name = StringField()
    display_text = StringField()
    color = StringField()
    extra_style = StringField()
    service = ObjectIdField()
    badge_type = StringField()


class PresentationCategory(Presentation):
    product = ReferenceField('ProductType')
    article = EmbeddedDocumentField(Article)
    show_video_review = BooleanField()
    show_video_reviews_count = IntField(default=0)
    badge = ListField(EmbeddedDocumentField(BadgeDoc))

查看:

class PresentationView(NewPresentationView):

form_subdocuments = {
    'badge': {
        'form_subdocuments': {
            None:
                {
                    'form_excluded_columns': ('name', 'display_text', 'color', 'extra_style', 'service',
                                              'badge_type'),

                    'form_overrides': {
                        'parent_id': admin.form.fields.Select2Field,
                    },

                    'form_args': {
                        'parent_id': {'choices': []}
                    }
                }
        }
    }
}

0 个答案:

没有答案