无法从面板中的输入中删除最后一个字段

Cannot remove last field from input in panel

在 Flask 面板中,我有 class 它继承了嵌入式文档,我有 inside

persons = db.ListField(db.ReferenceField('Person', required=False, null=True), default=[], required=False)

当我想通过 Flask 管理面板从我的输入字段中删除最后一个人时,它会保存文档但不会删除,当我有两个时我可以删除一个,但当我尝试删除第二个时不能留空。我尝试了不同的标志组合,并在 pre_save 和 post_save 中放置了断点,但在这两种情况下,当我删除最后一个人时,它表明那个人还在里面。如何从表单中删除此约束?

当您提交一个包含空列表的表单时,flask-admin 端似乎没有任何反应。所以我使用 on_model_change 方法做了一个技巧,在你的情况下它看起来像这样:

  def on_model_change(self, form, model, is_created):         
    if not 'persons' in request.form :                        
        model.persons = []