以下代码如果在python控制台中运行它工作正常并且能够获得预期的结果:
c2 = 1
stepCount = 4
workStepNo = 4
exeQueNum = 5
if c2 == 1:
if stepCount == workStepNo:
if exeQueNum == 5:
actionChoice1 =3
else:
actionChoice1 = 2
else:
stepCount= int(stepCount)+1
actionChoice1 = 1
else:
actionChoice1 = 0
print "actionChoice1", actionChoice1
能够在actionChoice1上的Python控制台上正确打印出来,这是3。
但是,当在Django中使用相同的代码时,它会将actionChoice生成为2而不是预期的3。
if c2 == 1:
if stepCount == workStepNo:
if exeQueNum == 5:
actionChoice =3
else:
actionChoice = 2
else:
stepCount= int(stepCount)+1
actionChoice = 1
else:
actionChoice = 0
请帮助确定可能导致此错误的错误。 可以使用其他替代方法在Django Python中获得预期结果
答案 0 :(得分:0)
if exeQueNum == 5:
actionChoice =3
else:
actionChoice = 2
当actionChoice
不是5时, exeQueNum
为2.请检查您在Django上检索/生成exeQueNum
的值的方式。它不等于5.
更新:
正如OP提到的那样,值为unicode
,即字符串。但它需要是整数才能与另一个整数(在这种情况下为5)进行比较。
这样做:
exeQueNum = int(exeQueNum)
if exeQueNum == 5:
actionChoice =3
else:
actionChoice = 2
如果您不想更改变量的类型,也可以执行if int(exeQueNum) == 5
。