我正在尝试使用get()方法更新数据库中的数据,但get()在django中不会更新

时间:2019-09-20 08:15:19

标签: django database

我试图在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)

2 个答案:

答案 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作为参数是否可以。