У меня есть две таблицы с отношениями внешнего ключа, и я использую flask-admin в качестве графического интерфейса администратора.
В некоторых случаях мне нужно изменить внешний ключ. В этом случае все существующие записи связанной таблицы должны быть обновлены (с новым внешним ключом). Как бы вы реализовали этот функционал?
Я попробовал функцию 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
Любая помощь высоко ценится. Спасибо