def update(self, request, pk=None):
queryset = Product.objects.all()
product = get_object_or_404(queryset, pk=pk)
serializer = ProductSerializer(product, data=request.data, context={"request": request})
serializer.is_valid()
serializer.save()
# print(request.data["product_details"])
for type_detail in request.data["product_details"]:
if type_detail["id"] == 0:
# For Insert New product_type Details
del type_detail["id"]
type_detail["product_id"] = serializer.data["id"]
serializer2 = ProductDetailsSerializer(data=type_detail, context={"request": request})
serializer2.is_valid()
serializer2.save()
else:
# For Update product_type Details
queryset2 = ProductDetails.objects.all()
type_product = get_object_or_404(queryset2, pk=type_detail["id"])
del type_detail["id"]
serializer3 = ProductDetailsSerializer(type_product, data=type_detail, context={"request": request})
serializer3.is_valid()
serializer3.save()
print("UPDATE")
return Response({"error": False, "message": "Data Has Been Updated"})
嗨,伙计们,我在我的视图集Django中遇到了这个错误,你们能帮我解决吗。。每当我想更新日期时,这就是错误,我会得到
它清楚地表明您的序列化程序数据验证失败。也就是说,
serializer.is_valid()
返回false。即使在那之后,您也要保存导致此错误的序列化程序对象。
理想情况下应该是这样的:
if serializer.is_valid()
serializer.save()
或者更干净的版本引发异常:
if serializer.is_valid(raise_exception=True):
serializer.save()
您需要检查此序列化程序对象无效的原因。如果serializer.is_valid()
返回True,则保存数据。