一旦Celery任务完成,就更新Django模型对象

时间:2012-04-24 20:24:55

标签: django celery django-celery

我想在芹菜任务完成后更新我的模型对象。我现在不知道如何去做这件事。

这是文件的布局

models.py

from photos.tasks import photo_download

class Photo(models.Model):
    ....fields....


@receiver(post_save)
def download_photo_callback(sender, **kwargs):
    photo = kwargs["instance"]
    result = photo_download.delay(photo.uid)

tasks.py

from photo.models import Photo

@task()
def photo_download(photo_uid, callback=None):
    ...do stuff...
    photo.status = 'D'
    photo.save()

3 个答案:

答案 0 :(得分:4)

你正在进行循环导入。您的tasks.py文件正在导入models.py文件,反之亦然。您应该将信号移动到单独的signals.py文件中以避免它。

答案 1 :(得分:1)

答案 2 :(得分:0)

让对方read your Django settings以便它可以轻松更新模型。