Я пытаюсь обновить данные в базе данных, используя метод get (), но get () не обновляется в django - PullRequest
0 голосов
/ 20 сентября 2019

пытаюсь обновить с помощью get () в django, но не обновляется в databse, пока он выдает сообщение, когда оно хорошо обновляется

пытаюсь обновить с помощью get () в django, но не обновляется в databse, пока он даетКак только он обновился, я попытался использовать 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 голосов
/ 20 сентября 2019

Попробуйте:

obj = Product.objects.get(id=id)
obj.__dict__.update(**items_from_user)
obj.save()

Ваша попытка наверняка сработает так:

Product.objects.values().get(id=id).update(field = 'value')

, но не уверен, что с параметром dict в качестве параметра все в порядке.

0 голосов
/ 20 сентября 2019

Вы можете попробовать фильтр.Products.objects.filter(id=id).update(**items_from_user)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...