Как сохранить/обновить модель в БД с помощью django?
Я использую сигналы django для обновления стороннего сервиса, вот что происходит:
- Сигнал срабатывает всякий раз, когда
User
обновляется - Получить связанную модель под названием
account
- Обновите сторонний сервис
- Наконец, я хочу установить флаг в моей собственной БД
@receiver(post_save, sender=User, dispatch_uid='get_modified_user')
def update_third_party(sender, instance, **kwargs):
logger.info('signal triggered')
account = Account.objects.prefetch_related('related_model').get(user_id=instance.id)
if not account:
logger.info('account not found')
else:
syncer = Syncer()
syncer.update_third_party(account)
logger.info('save account flag')
account.is_sent_to_third_party = True
account.save()
Приведенный выше код работает нормально, и сторонняя служба обновляется. Я вижу следующий вывод:
signal triggered
save account flag
Но когда я проверяю БД, значение флага is_sent_to_third_party
по-прежнему false