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))