Я использую sqlalchemy. Вопрос прост, но у меня большая проблема, потому что я хочу использовать MapperExtension.
У меня есть два класса: Пользователь и Вопрос
У пользователя может быть много вопросов, и он также содержит question_count
записать количество вопросов, принадлежащих ему.
Итак, когда я добавляю новый вопрос, я хочу обновить счетчик вопросов
пользователь. Сначала я делаю как:
question = Question(title='aaa', content='bbb')
Session.add(question)
Session.flush()
user = question.user
### user is not None
user.question_count += 1
Session.commit()
Все идет хорошо.
Но я не хочу использовать функцию обратного вызова события, чтобы сделать то же самое, поэтому я использую MapperExtension
sqlalchemy. Я поместил логику updating user.question_count
в after_insert
обратный вызов question
. Но я обнаружил, что не могу обновить user.question_count
, он будет проигнорирован.
Я не знаю причину. И, если у вас есть такое же требование, как вы его выполняете?