fix refresh task when the object is deleted
authorJan Szejko <janek37@gmail.com>
Tue, 8 May 2018 15:07:36 +0000 (17:07 +0200)
committerJan Szejko <janek37@gmail.com>
Tue, 8 May 2018 15:07:36 +0000 (17:07 +0200)
apps/catalogue/tasks.py

index c386c22..9507c41 100644 (file)
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
 from celery.task import task
 from django.utils import translation
 
 from celery.task import task
 from django.utils import translation
 
@@ -5,12 +6,16 @@ from django.utils import translation
 @task(ignore_result=True)
 def _refresh_by_pk(cls, pk, language=None):
     prev_language = translation.get_language()
 @task(ignore_result=True)
 def _refresh_by_pk(cls, pk, language=None):
     prev_language = translation.get_language()
-    language and translation.activate(language)
+    if language:
+        translation.activate(language)
     try:
         cls._default_manager.get(pk=pk).refresh()
     try:
         cls._default_manager.get(pk=pk).refresh()
+    except cls.DoesNotExist:
+        pass
     finally:
         translation.activate(prev_language)
 
     finally:
         translation.activate(prev_language)
 
+
 def refresh_instance(instance):
     _refresh_by_pk.delay(type(instance), instance.pk, translation.get_language())
 
 def refresh_instance(instance):
     _refresh_by_pk.delay(type(instance), instance.pk, translation.get_language())