Python 3.x 人民币兑美元货币发行

Python 3.x 人民币兑美元货币发行,python-3.x,django-models,Python 3.x,Django Models,我正在做一个从人民币到美元的转账网络应用程序。因此,我试图根据每日汇率将人民币兑换成美元。收到的金额应为客户提交的金额除以每日费率。令人惊讶的是,当我检查我的数据库时,它正在记录人民币金额乘以汇率。当我在后端打印收到的金额时,它给出了正确的金额,但在数据库中,它记录了一个金额。请帮忙 def save(self, frais=Decimal('0.0'), *args, **kwargs): self.rate=currencies.get_rate('USD','CNY')

我正在做一个从人民币到美元的转账网络应用程序。因此,我试图根据每日汇率将人民币兑换成美元。收到的金额应为客户提交的金额除以每日费率。令人惊讶的是,当我检查我的数据库时,它正在记录人民币金额乘以汇率。当我在后端打印收到的金额时,它给出了正确的金额,但在数据库中,它记录了一个金额。请帮忙

def save(self, frais=Decimal('0.0'), *args, **kwargs):
        self.rate=currencies.get_rate('USD','CNY')
        currency_list=Currency.objects.all()
        # amount = Decimal('0.0')
        amount=currencies.convert('USD','CNY', Decimal(self.montant))
        # Transfer de la RDC ver la
        # print('Currency used:', self.devise) 
        # Si le montant est inférieur à 50$
        mtn_inferieur=7
        for currency in currency_list:
                
            # Conversion from CNY To USD
            if self.montant < 7000 and currency.code=='CNY':
                if self.choix_du_paiement_des_frais=='Oui':
                    self.frais = self.montant*Decimal(0.07)
                    self.montant=self.montant-self.frais
                    self.received_amount = Decimal(self.montant)/Decimal(self.rate)
                    print('Taxe rate 1', currency.code)
                # self.choix_du_paiement_des_frais=='Non' and self.montant < 7000 and currency.code=='CNY':
                else: 
                    self.frais = self.montant*Decimal(0.07)
                    self.received_amount=self.montant/Decimal(self.rate)
                    self.montant=self.montant
                    print('Taxe rate 2', self.devise)
            
            elif self.montant >= 7000 and currency.code=='CNY':
                if self.choix_du_paiement_des_frais=='Oui':
                    self.frais = self.montant * Decimal(0.06)
                    self.received_amount = (self.montant - self.montant*Decimal(0.06))/Decimal(self.rate)
                    self.montant=self.montant-self.montant*Decimal(0.06)
                    print('Taxe rate 3', self.devise)
                else:
                    # self.choix_du_paiement_des_frais=='Non' and self.montant >= 7000 and self.devise=='CNY': 
                    self.frais = self.montant * Decimal(0.06)
                    self.received_amount=Decimal(self.montant)/(Decimal(self.rate))
                    print(self.rate)
                    print(self.received_amount)
                    self.montant=self.montant
                    print('Taxe rate 4', self.devise)

            super(EnvoieArgent, self).save(*args, **kwargs)
def保存(self,frais=Decimal('0.0'),*args,**kwargs):
self.rate=货币。获取汇率('USD','CNY')
currency\u list=currency.objects.all()
#金额=十进制('0.0')
金额=货币。换算('USD'、'CNY',十进制(self.montant))
#从RDC到la的转移
#打印('使用的货币:',自行设计)
#这是一个50岁的孩子$
mtn_inferieur=7
对于货币列表中的货币:
#人民币兑美元
如果self.montant<7000且货币代码=='CNY':
如果self.choix_du_paiement_des_frais=='Oui':
self.frais=self.montant*十进制(0.07)
self.montant=self.montant-self.frais
自收金额=小数(自付金额)/小数(自付费率)
打印('税率1',货币代码)
#self.choix_du_painement_des_frais='Non'和self.montant<7000和currency.code='CNY':
其他:
self.frais=self.montant*十进制(0.07)
自收金额=自付金额/十进制(自付费率)
self.montant=self.montant
打印(“税率2”,自行设计)
elif self.montant>=7000和币种。代码=='CNY':
如果self.choix_du_paiement_des_frais=='Oui':
self.frais=self.montant*十进制(0.06)
自付金额=(自付金额-自付金额*小数(0.06))/小数(自付利率)
self.montant=self.montant-self.montant*Decimal(0.06)
打印(“税率3”,自行设计)
其他:
#self.choix_du_painement_des_frais='Non'和self.montant>=7000和self.designe='CNY':
self.frais=self.montant*十进制(0.06)
自收金额=十进制(自付金额)/(十进制(自付金额))
打印(自费率)
打印(自收到金额)
self.montant=self.montant
打印(“税率4”,自行设计)
超级(环境剂,自我)。保存(*args,**kwargs)
当我将美元到人民币的转换代码与上述转换代码组合时,问题就出现了。当删除下面的代码或注释时,我的程序的结果是正确的。我不知道为什么在同一代码中合并两个转换时结果不正确

# From USD to CNY
elif self.montant <= 50 and currency.code=='USD':
                if self.choix_du_paiement_des_frais=='Oui':
                    self.frais = 7
                    self.received_amount = (self.montant-7)*Decimal(self.rate)
                    self.montant=Decimal(self.montant-7)
                    self.montant=self.montant
                    print(self.rate)
                    print(self.received_amount)
                    print(self.montant)
                    print('Taxe rate 5', self.devise)       
                elif self.choix_du_paiement_des_frais=='Non': 
                    # self.choix_du_paiement_des_frais=='Non' and self.montant <= 50 and currency.code=='USD':
                    self.frais = 7
                    self.received_amount = self.montant*Decimal(self.rate)
                    self.montant=self.montant
                    print(self.rate)
                    print(self.received_amount)
                    self.montant=self.montant
                    print('Taxe rate 6', self.devise)
            # Fin pour des conditions du montant de 50$

            elif self.montant < 1000 and currency.code=='USD':
                if self.choix_du_paiement_des_frais=='Oui':
                    self.frais = self.montant*Decimal(0.07)
                    self.received_amount = (self.montant - self.montant*Decimal(0.07))*Decimal(self.rate)
                    self.montant=self.montant-self.montant*Decimal(0.07)
                    print('Rate: ', self.rate)
                    print('Montant reçu: ',self.received_amount)
                    print('Montant envoyé: ', self.montant)
                    print('Taxe rate 7', self.devise)

                else: 
                    # self.choix_du_paiement_des_frais=='Non' and self.montant < 1000 and currency.code=='USD':
                    self.frais = self.montant*Decimal(0.07)
                    self.received_amount=self.montant*Decimal(self.rate)
                    self.montant=self.montant
                    print('Rate: ', self.rate)
                    print('Montant reçu: ',self.received_amount)
                    print('Montant envoyé: ', self.montant)
                    print('Taxe rate 8', self.devise)

            elif self.montant >= 1000 and currency.code=='USD':
                if self.choix_du_paiement_des_frais=='Oui':
                    self.frais = self.montant * Decimal(0.06)
                    self.received_amount = (self.montant - self.frais)*Decimal(self.rate)
                    self.montant=self.montant-self.frais
                    # print('US Dollar Currency khjkhjkkj:', currency.code)
            
                else: 
                    # currency.code=='USD' and self.choix_du_paiement_des_frais=='Non' and self.montant >= 1000 :
                    self.frais = self.montant * Decimal(0.06)
                    self.received_amount=self.montant*Decimal(self.rate)
                    self.montant=self.montant
#从美元到人民币
elif self.montant=1000:
self.frais=self.montant*十进制(0.06)
自收金额=自付金额*十进制(自付费率)
self.montant=self.montant