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

2024-04-18 19:48:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我的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_对象

打印()的输出:

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

我不明白tran的论点在哪里被遗漏了


Tags: 对象方法模型selfdatesavedefservice
1条回答
网友
1楼 · 发布于 2024-04-18 19:48:44

正如@deceze所指出的,您是在事务类上调用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()

此外,在save方法中,您使用点表示法访问dict中的条目,这将不起作用

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

相关问题 更多 >