当我使用filter(user=user, product=product)
的筛选器时,它显示了unsupported operand type(s) for /: 'NoneType' and 'int'
的错误。但是,当我仅使用filter(product=product)
时,它没有显示任何错误。有解决方案吗?
这是我在views.py
中使用的代码段
for product in Product.objects.all():
product_total_value = Transaction.objects.filter(user=user,
product=product).aggregate(Sum('value'))
total = Transaction.objects.aggregate(Sum('value'))
percentage = product_total_value['value__sum'] / total['value__sum'] * 100
答案 0 :(得分:2)
这是因为 product_total_value['value__sum']
或 total['value__sum']
具有 None
值。
因此,您必须按以下方式处理这些情况,
for product in Product.objects.all():
product_total_value = Transaction.objects.filter(user=user, product=product).aggregate(Sum('value'))
total = Transaction.objects.aggregate(Sum('value'))
if product_total_value['value__sum'] and total['value__sum']:
percentage = product_total_value['value__sum'] / total['value__sum'] * 100
else:
percentage = 0