gpt4 book ai didi

python - Django 聚合(求和错误

转载 作者:行者123 更新时间:2023-11-28 22:18:40 25 4
gpt4 key购买 nike

我试图在使用 pk 过滤对象后对一个完整的字段求和。

Views.py

def items(request, pk):
current_user = request.user
selected_itemz = get_object_or_404(ItemIn, pk=pk)
all_cats = Category.objects.all()
cat_count = all_cats.count()
item_count = ItemIn.objects.values_list('item_name', flat=True).distinct().count() # returns a list of tuples..
#all_units = Item.objects.aggregate(Sum('item_quantity'))['item_quantity__sum']
ItemOut_table = ItemOut.objects.all().filter(item_name=selected_itemz)
ItemOut_quantity = ItemOut_table.aggregate(Sum('item_quantity'))['item_quantity__sum']

context = {
#'all_units': all_units,
'item_count': item_count,
'cat_count': cat_count,
'current_user': current_user,
'ItemOut_quantity': ItemOut_quantity,
'selected_itemz':selected_itemz,
}

return render(request, 'townoftech_warehouse/item_details.html', context)

然后我在我的 HTML 中使用了一个我创建的额外过滤器 subtract

HTML

  <br>
<br>
<p align="right">
الكمية الموجودة:
{{ selected_itemz.item_quantity|subtract:ItemOut_quantity }}
</p>
<br>
<br>

这是 tempaltetags 文件

from django import template

register = template.Library()


@register.filter
def subtract(value, arg):
return value - arg

现在我得到错误:

TypeError at /item/1/
unsupported operand type(s) for -: 'int' and 'NoneType'

最佳答案

如果您对一个空查询集求和,则求和结果为None。然后稍后在您的 View 中,您从一个整数中减去 None,但是 Python 无法从一个整数中减去 None,因此出现错误。

您可以使用 或 0,在您的 View 中将 None 替换为零:

ItemOut_quantity = ItemOut_table.aggregate(sum=Sum('item_quantity'))['sum']<b> or 0</b>

关于python - Django 聚合(求和错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50316317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com