django - Django 查看错误:分配前引用的局部变量-> if 语句中的缺陷?
问题描述
在我的 Django 视图中,我有以下 if 循环:
for i in queryset:
if i['mnemonic'] == '#0602###95EUR00':
cash_ps_totbank_eur = i['value']
cash_ps_totbank_eur_sub1 = i['value']
if i['mnemonic'] == '#0602###90EUR00':
cash_ps_totbank_eur += i['value'] # Working
cash_ps_totbank_eur_sub2 = i['value']
if i['mnemonic'] == '#0602###95USD00':
cash_ps_totbank_usd = i['value']
cash_ps_totbank_usd_sub1 = i['value']
if i['mnemonic'] == '#0602###2095900':
cash_ps_totbank_usd += i['value'] # NOT working & throwing error
cash_ps_totbank_usd_sub2 = i['value']
加载模板时,Django 向我抛出一个错误,说local variable 'cash_ps_totbank_usd' referenced before assignment
. 我在这里做与上面八行相同的事情,即向之前在 if 循环中启动的变量添加一个值,因此应该已经为其分配了一个值。
我试图检查以 _sub1 和 _sub2 结尾的变量,查询集和字符串之间的相等检查是否可能存在错误。但这种情况并非如此。_sub1 和 _sub2 的变量工作得很好,并获得了正确的值。
知道我在这里缺少什么吗?
解决方案
您需要在 for 循环之外定义这两个变量:
cash_ps_totbank_eur = int()
cash_ps_totbank_usd = int()
因为如果语句第一次if i['mnemonic'] == '#0602###90EUR00':
计算结果为,True
那么这个cash_ps_totbank_eur += i['value']
等于的语句cash_ps_totbank_eur = cash_ps_totbank_eur + i['value']
将导致错误,因为cash_ps_totbank_eur
尚未定义
推荐阅读
- linux - 我们可以在使用 tc(traffic control) 时检查数据包统计信息吗?
- c# - 如何在一个用户控件中有两个滚动视图?
- python-3.x - Rasa 按钮在 Slack 中显示为文本
- docker - 无法使用 docker 登录到 canister.io - 授权服务器在响应中未包含令牌
- java - JSON 有效负载的 Java 验证:以树的形式返回错误
- awk - awk/sed 删除重复并合并排列的列
- excel - ActiveSheet.PasteSpecial 有效,Transpose:=True 出错
- c# - 使用 c# 将文件上传到谷歌云存储
- excel - MindManager 不会显示 Excel 范围
- git - 重命名包含(本地)git 存储库的复制文件夹会导致 git 按预期停止工作吗?