Django React Python发布请求图像分类

时间:2019-11-29 08:43:35

标签: python django reactjs

def post(self, request, *args, **kwargs):
    plants_serializer = PlantSerializer(data=request.data)
    data = request.FILES['plantImage']
    path = os.path.abspath('../PlantPharmacy/media/images/ ')
    path = path.strip()
    filename = path + str(data)

    if plants_serializer.is_valid():
        plants_serializer.save()
        result = predict(filename)
        obj = Plants.objects.get(plantImage = filename)
        obj.classification = result
        obj.save()
        return Response(plants_serializer.data, status=status.HTTP_201_CREATED)
    else:
        print('error', plants_serializer.errors)
        return Response(plants_serializer.errors, status=status.HTTP_400_BAD_REQUEST)

嗨!

因此,我尝试编辑Django数据库模型条目(将其“分类”字段设置为通过预测函数获得的结果),但是当我搜索图像时(Plants.objects.get(plantImage = filename))表示文件不存在,即使我已经保存了它。我有一种感觉,因为数据库识别文件需要花费一些时间。我试图找到一种解决方法,因为我需要返回图像分类,但我不确定这样做或解决该问题的方法。

获取“ DoesNotExist(“%s匹配查询不存在。”“错误。

2 个答案:

答案 0 :(得分:1)

尝试:

obj = plants_serializer.save(commit=False)
obj.classification = predict(filename)
obj.save()

答案 1 :(得分:0)

我尝试了

            plants_serializer.save()
            result = predict(filename)
            plants_serializer.save(user=request.user, classification=result)
            return Response(plants_serializer.data, status=status.HTTP_201_CREATED)

但是出现了“ django.db.utils.IntegrityError:NOT NULL约束失败:”错误。在处理它之前,我需要plants_serializer.save(),但是然后要将分类添加到数据库中现有条目中的字段中。

可以通过一个POST请求完成此操作吗?在执行此操作之前,我是否需要以某种方式再次获取条目?我对后端不是很熟悉。