Django: изменения значения полей

У меня есть некая корзина, в которой при добавление хранятся продукты, которые туда поместили. Там показывает количество этих элементов(продуктов). Есть БД с корзиной, с полями quantity, user и product.

Можно добавлять и удалять продукты с корзины. Так вот, хочу чтобы корзина удалялась лишь в том случае, если quantity == 1, иначе - просто изменять количество. Но сейчас не уменьшает количество, и не удаляет.

def basket_delete(request, id):
    basket = Basket.objects.get(id=id)

    if basket.quantity == 1:
        basket.delete()
    else:
        basket.quantity -= 1
    return redirect(request.META.get('HTTP_REFERER'), constant=False)

Ответы (1 шт):

Автор решения: nomnoms12

Вы не сохраняете изменения в записи. Для того чтобы сделать это, вызовите метод save.

Пример:

def basket_delete(request, id):
    basket = Basket.objects.get(id=id)

    if basket.quantity == 1:
        basket.delete()
    else:
        basket.quantity -= 1
        basket.save()         # <-----

    return redirect(request.META.get('HTTP_REFERER'), constant=False)
→ Ссылка