Advertisement
ur001

Untitled

Aug 15th, 2023 (edited)
1,126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.09 KB | None | 0 0
  1. ##################################################################################
  2. # Исправленный вариант 2: Запуск задачи отложен до завершения транзакции через
  3. # механизм django `transaction.on_commit`
  4. ##################################################################################
  5. @receiver(post_save, sender=Guide)
  6. def update_experience_visibility_after_guide_placement_status_change(sender, instance: Guide, created, **kwargs):
  7.     """Обновление видимости экспириенсов гида после смены его статуса размещения"""
  8.     guide = instance
  9.     if guide.is_changed('placement_status'):
  10.         for exp_id in guide.experiences_created.values_list('pk', flat=True):
  11.             transaction.on_commit(
  12.                 lambda: update_guide_exp_visibility.delay(exp_id)
  13.             )
  14.  
  15.  
  16. ########################################################################
  17. # В чём проблема/ошибка этого решения? Как это исправить?
  18.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement