Flask-Admin: как изменить модель с помощью on_model_change?

Я пытаюсь установить значение поля на основе другого поля в той же форме:

    def on_model_change(form, model, is_created):
        model.textcolumn.data = model.textcolumn2.data

Обновление через интерфейс Flask-Admin не вызывает никаких исключений, но не было внесено никаких изменений в значение в model.textcolumn.

Осматривая объект "модель", я также заметил, что это не то же самое, что модель SQLAlchemy, используемая для генерации ModelView.

Как я могу изменить значение model.textcolumn на значение model.textcolumn2? Есть ли способ получить доступ к объекту модели SQLAlchemy напрямую? Это было бы намного лучше.

1 ответ

Я сделал это с помощью формы администратора для конкретной модели

class YourModelAdmin(MyModelView):
    form_overrides = dict(filename=FileField)

    def on_model_change(self, form, instance):
        pass

   admin.add_view(YourModelAdmin(YourModel, db.session))
Другие вопросы по тегам