Не удается удалить последнее поле из ввода на панели

В панели Flask у меня есть класс, который наследует встроенный документ, и у меня есть внутри

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

Когда я хочу удалить последнего человека из поля ввода через панель управления Flask, он сохраняет документ, но не удаляет, когда у меня есть два, я могу удалить один, но не могу оставаться пустым, когда пытаюсь удалить второе. Я пробовал разные комбинации с флагами и ставил контрольные точки в pre_save и post_save, но в обоих случаях, когда я удаляю последнего человека, он показывает, что человек все еще внутри. Как убрать это ограничение из формы?

1 ответ

Решение

Кажется, что ничего не происходит на стороне фляги-администратора, когда вы отправляете форму с пустым списком. Итак, я сделал трюк с использованием метода on_model_change, в вашем случае это будет выглядеть так:

  def on_model_change(self, form, model, is_created):         
    if not 'persons' in request.form :                        
        model.persons = []
Другие вопросы по тегам