我想在芹菜任务完成后更新我的模型对象。我现在不知道如何去做这件事。
这是文件的布局
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)
from photo.models import Photo
@task()
def photo_download(photo_uid, callback=None):
...do stuff...
photo.status = 'D'
photo.save()
答案 0 :(得分:4)
你正在进行循环导入。您的tasks.py
文件正在导入models.py
文件,反之亦然。您应该将信号移动到单独的signals.py
文件中以避免它。
答案 1 :(得分: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
答案 2 :(得分:0)
让对方read your Django settings以便它可以轻松更新模型。