Обновление поля в таблице PostgreSQL с помощью .update() не работает в django

Я пытался обновить значение invo_payment_method из таблицы под названием Invoices. Вот код, который я пытаюсь выполнить в настоящее время:

if total_payments_for_invoice.all().count() == 1:
    invoice_object = Invoice.objects.get(slug=slug)
    invoice_object.invo_payment_method = request.POST.get('payment_method')
    invoice_object.save()

Итак, я пытаюсь сделать следующее: если это первый платеж по счету-фактуре, я хочу получить invoice_object, который содержит slug счета-фактуры, только что получившего платеж, и обновить поле invo_payment_method в таблице и сохранить изменения. Но это не работает. Я также попробовал сделать следующее:

if total_payments_for_invoice.all().count() == 1:
    Invoice.objects.filter(slug=slug).update(
        invo_payment_method=request.POST.get('payment_method'))

И это тоже не работает. После этого я попробовал добавить к приведенному выше коду следующее:

if total_payments_for_invoice.all().count() == 1:
    Invoice.objects.filter(slug=slug).update(
        invo_payment_method=request.POST.get('payment_method')).save()

А этот действительно обновил значение в базе данных, но при этом произошел сбой веб-страницы из-за следующего исключения: AttributeError: 'int' object has no attribute 'save'. В случае, если необходимо больше информации, если я выведу значение Invoice.objects.get(slug=slug), то получу следующее: INV-bb1c 21. А если я выведу значение Invoice.objects.filter(slug=slug), то получу следующее: <QuerySet [<Invoice: INV-bb1c 21>]>. В обоих случаях я получаю номер счета, который равен INV-bb1c и pid счета, который равен 21. Как выглядит таблица Invoice смотрите на прикрепленном изображении. Любая помощь будет очень признательна. Для уточнения: invo_payment_method изначально null в базе данных и request.POST.get('payment_method') возвращает строку используемого способа оплаты.

enter image description here

Вернуться на верх