【发布时间】:2014-07-06 03:36:25
【问题描述】:
我该如何处理这个错误,它让我发疯:
unsupported operand type(s) for +: 'NoneType' and 'NoneType'
还有
unsupported operand type(s) for +: 'Float' and 'NoneType'
我明白它告诉我的(我认为)所以这是我写的代码来尝试和它战斗
查看:
session = request.session._session_key
ind = signedup.objects.filter(sessionid = session)
team = team_signup.objects.filter(sessionid = session)
combine = list(chain(ind, team))
check = signedup.objects.filter(sessionid = session).count() + team_signup.objects.filter(sessionid = session).count()
ind = signedup.objects.filter(sessionid = session).aggregate(Sum ('price'))['price__sum']
team = team_signup.objects.filter(sessionid = session).aggregate(Sum ('price'))['price__sum']
if check == 0:
carttotal = 0.00
elif ind == None:
ind = 0.00
elif team == None:
team = 0.00
carttotal = ind + team
return render_to_response("cart.html",locals(),context_instance = RequestContext(request))
我想我正在做的是将它们的值设置为 0,然后再将其相加,如果它碰巧没有作为值。是否有另一种方法来处理这个问题,以便当其中一个确实没有出现时,它被设置为零以便可以添加。此外,当 BOTH 都为 none 时,可以将它们设置为 0,以便可以添加它们。
【问题讨论】:
-
先添加
print int和print team,看看哪些值是None。另外,这是您的实际 视图吗? stacktrace + 确切的代码会有所帮助 -
是的,这是我的实际观点,所有之后都是回报。我不确定堆栈跟踪是什么。他们中的任何一个都可能是 None 因为链从两个查询中获取值,他们不会总是返回一些东西
-
stacktrace 是您在错误屏幕上看到的(其中提到了问题的行号等)
标签: django django-models django-errors django-aggregation