save() 缺少 1 个必需的位置参数:'tran'



我的save()方法抛出错误:save() missing 1 required positional argument: 'tran'。我在模型"Transactions"中重写了save()方法,如下所示:

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()

其中save()中的tran参数是一个从视图传递过来的字典对象。请注意,我也在save()的最后一行尝试了super(Transactions,self).save(D,tran)

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参数在哪里被遗漏了。

正如@ decize指出的,您是在Transactions类上调用save()方法,而不是在您希望保存的事务实例上。您需要在实例

上调用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()

同样在你的保存方法中,你使用点符号来访问字典中的条目,这将不起作用。

self.TYPE=tran.SERVICE_CODE
self.TYPE=tran["SERVICE_CODE"]

最新更新