У меня есть две таблицы с отношением внешнего ключа, и я использую flask-admin в качестве GUI администратора.
В некоторых случаях мне нужно изменить внешний ключ.В этом случае все существующие Записи соответствующей таблицы должны быть обновлены (с новым внешним ключом).Как бы вы реализовали эту функциональность?
Я попробовал функцию on_model_change в flask-admin.Хотя я сталкиваюсь с проблемой, я получаю только обновленный ключ от функции (?) -> (мне нужен старый ключ, чтобы найти существующие записи оценки и обновить их).Кроме того, я не смогу зафиксировать новый ключ, если записи оценки не были обновлены (ограничение внешнего ключа не будет выполнено).
Можно ли реализовать эту функцию в графическом интерфейсе пользователя flask-admin?
class Assessment(db.Model):
__tablename__ = "assesment_table"
id = db.Column(db.Integer, primary_key=True)
psr_id = db.Column(db.String(40), db.ForeignKey("psr_object_table.psr_id"))
class Unit(db.Model):
__tablename__ = "units_table"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80))
psr_id = db.Column(db.String(40), unique=True)
#needed for Flask-Admin view
class UnitView(ModelView):
def on_model_change(self, form, model, is_created):
#get old_key
#query and update db with new foreign key
#commit everything
Любая помощь высоко ценится.Спасибо