Переопределить Flask Admin сохранить новую строку в таблице

1

Как я могу переопределить и добавить дополнительный код при создании новой строки в таблице через панель администратора в Flask?
Например: Пользователь вводит информацию для новой строки в таблице "Почта" и нажимает кнопку "Сохранить". Я хочу добавить код для автоматизации процесса с помощью этой новой информации о строках.

Теги:
flask
flask-admin

1 ответ

0

Вы можете переопределить методы on_model_change для выполнения действий перед сохранением/обновлением новой модели или after_model_change чтобы что-то сделать после, очевидно. Вы можете наследовать класс BaseModelView или ModelView если вы используете Flask-SqlAchemy.

В каждом случае для воспроизведения используются 3 аргумента: form используемая представлением, новая/обновленная model и флаг is_created чтобы знать, является ли модель новой (True) или обновленной.

Вы можете определить вид модели, как показано ниже:

from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView

class PostView(ModelView):

    def after_model_change(self, form, model, is_created):
        print(form, model, is_created)

    def on_model_change(self, form, model, is_created):
        print(form, model, is_created)

admin = Admin(template_mode='bootstrap3')
admin.add_view(PostView(Post, db.session, name='Posts'))

Примечание. У вас есть доступ к аналогичным методам для удаления части с помощью on_model_delete и after_model_delete, за исключением того, что у вас есть только модель, after_model_delete в качестве аргумента.

  • 0
    Это не работает для меня вообще. Я также получаю сообщение об ошибке с «NoteView»
  • 0
    Вы не предоставили код, который бы знал имя класса, вы должны изменить этот пример, чтобы он соответствовал вашим собственным классам.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню