* updated README

* both func and hook check for callable.
This commit is contained in:
Ilan Steemers
2015-06-26 14:24:25 +02:00
parent 28d6c26256
commit 666bdc97dc
7 changed files with 158 additions and 46 deletions
+10 -5
View File
@@ -37,14 +37,19 @@ class Task(models.Model):
@receiver(pre_save, sender=Task)
def call_hook(sender, instance, **kwargs):
if instance.hook:
module, func = instance.hook.rsplit('.', 1)
logger = logging.getLogger('django-q')
f = instance.hook
if not callable(f):
try:
module, func = f.rsplit('.', 1)
m = importlib.import_module(module)
f = getattr(m, func)
except (ValueError, ImportError, AttributeError):
logger.error(_('malformed return hook \'{}\' for {}').format(instance.hook, instance.name))
try:
m = importlib.import_module(module)
f = getattr(m, func)
f(instance)
except Exception as e:
logger = logging.getLogger('django-q')
logger.error(_('return hook failed on {}').format(instance.name))
logger.error(_('return hook {} failed on {}').format(instance.hook, instance.name))
logger.exception(e)