6

一旦芹菜任务完成,我想更新我的模型对象。不过,我目前不知道如何去做。

这是文件的布局

模型.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)

任务.py

from photo.models import Photo

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

3 回答 3

4

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

于 2012-04-24T21:30:32.777 回答
1

文档中有一个示例:

http://docs.celeryproject.org/en/latest/userguide/tasks.html#example

请参阅 spam_filter 任务:

http://docs.celeryproject.org/en/latest/userguide/tasks.html#blog-tasks-py

于 2012-04-24T20:32:49.140 回答
0

让对方阅读您的 Django 设置,以便它可以轻松更新模型。

于 2012-04-24T20:31:55.927 回答