我试图在django中使用get()进行更新,但未在databse中进行更新,但它会给出消息,因为它更新得很好
am在django中尝试使用get()进行更新,但未在databse中进行更新,因为它可以很好地更新消息,但我尝试使用filter()并运行良好,但是问题是在更新时filter无法正常工作数据,请在下面查看我的代码。请我要使用get()来确保我的东西更新得很好,谢谢。
@require_http_methods(["PATCH", "PUT"])
def update_product(request, id=None):
items_from_user = json.loads(request.body.decode('utf8'))
try:
Product.objects.values().get(id=id).update(**items_from_user)
return JsonResponse({ 'message': 'Product {} updated'.format(id) })
except Product.DoesNotExist as error:
return JsonResponse({ 'message': str(error) }, status=404)
except Exception as error:
return JsonResponse({ 'message': str(error) }, status=422)
答案 0 :(得分:0)
您可以尝试过滤。 Products.objects.filter(id=id).update(**items_from_user)
答案 1 :(得分:0)
尝试一下:
obj = Product.objects.get(id=id)
obj.__dict__.update(**items_from_user)
obj.save()
您的尝试肯定会像这样:
Product.objects.values().get(id=id).update(field = 'value')
但不确定以dict作为参数是否可以。