Save() missing 1 required positional argument: 'tran'

Мой метод save() выдает ошибку: save() missing 1 required positional argument: 'tran'. Я переопределил метод save() в модели "Transactions" следующим образом:

def save(self,D,tran):
        self.DATE=D
        self.TYPE=tran.SERVICE_CODE
        self.SUCCESS=tran['Success']
        self.TECHNICAL_DECLINES=tran['Technical_declines']
        self.BUSINESS_DECLINES=tran['Business_declines']
        self.TOTAL=self.SUCCESS+self.TECHNICAL_DECLINES+self.BUSINESS_DECLINES
        self.PERCENTAGE_TECH_DEC=((T/(self.TOTAL))*100)
        super(Transactions,self).save()

где tran аргументом в save() является объект словаря, переданный из views. Обратите внимание, что я также пробовал super(Transactions,self).save(D,tran) в последней строке save().

views.py

def fetch():
    DATE=datetime.datetime.now()
    print(DATE)
    status=Transactions.objects
    obj=wf()
    for tran in obj:
        print(tran)
        Transactions.save(DATE,tran)
    return Transactions.objects.all()

Здесь wf() - это функция извлечения объекта базы данных из модели. Из вывода print(tran) видно, что объект db_object извлекается без каких-либо проблем.

вывод функции print():

{'SERVICE_CODE': 'APY', 'Success': 1, 'Technical_declines': 0, 'Business_declines': 0}

Я не понимаю, где пропущен аргумент tran.

Как указал @deceze, вы вызываете метод save() на классе Transactions, а не на экземпляре транзакции, который вы хотите сохранить. Вам нужно вызвать save на экземпляре

def fetch():
    DATE=datetime.datetime.now()
    print(DATE)
    status=Transactions.objects
    obj=wf()
    for tran in obj:
        print(tran)
        tran.save(DATE,tran)
    return Transactions.objects.all()

Также в вашем методе сохранения вы используете точечную нотацию для доступа к записи в dict, это не будет работать.

self.TYPE=tran.SERVICE_CODE
self.TYPE=tran["SERVICE_CODE"]
Вернуться на верх