我有以下代码:
@task()
def handle_upload(title, temp_file, user_id):
.
.
.
photo.save()
#if i insert here "photo2 = Photo.objects.get(pk=photo.pk)" it works, including the view function
return photo.pk
#view function
def upload_status(request):
task_id = request.POST['task_id']
async_result = AsyncResult(task_id)
photo_id = async_result.get()
if async_result.successful():
photo = Photo.objects.get(pk=photo_id)
我使用 ajax 请求来检查上传的文件,但是在 celery 任务完成后,我得到一个照片匹配查询不存在。照片 pk 确实存在并被返回。如果我手动查询数据库,它可以工作。这是某种数据库滞后吗?我该如何解决?我正在使用 Django 1.4 和 Celery 3.0