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