我在views.py中创建了一个函数,在函数中将对象序列化为json之后,将这些数据传递给芹菜任务,但我在将数据收集回请求类时遇到了问题。也就是说,我无法将json中的数据收集回请求类,因为我必须通过芹菜任务将这个请求类传递给另一个函数
views.py
def create(self, request, *args, **kwargs):
instance = self.get_object()
serializer = self.get_serializer(instance, data=request.data)
serializer.is_valid(raise_exception=True)
request_data = {
"crm_id": request.JWT.crm_id,
"crm": None,
"crmuser": request.JWT.crmuser.id,
"crm_users": None
}
matching_fields = serializer.validated_data['matching_fields']
import_data.delay(request_data, instance.id, matching_fields)
任务.py
@shared_task
def import_data(request_data, instance_id, matching_fields):
instance = ImportRecord.objects.get(id=instance_id)
request_data['crm'] = Crm.objects.get(id=request_data['crm_id'])
request_data['crmuser'] = CrmUser.objects.get(id=request_data['crmuser'])
request_data['crm_users'] = CrmUser.objects.all().filter(crm_id=request_data['crm_id'])
helper = ImportData(matching_fields, instance, request)
helper.import_data()
我如何返回收集json请求数据以请求类
Celery是一个异步过程,所以据我所知,如果您需要在代码的其他部分使用Celery的结果,最佳做法是将结果保存在数据库中,然后在需要的地方提取数据。