我的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()方法,而不是在您希望保存的事务实例上。您需要在实例
上调用savedef 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"]