Кажется, у меня проблема с подсчетом.У меня есть элемент списка, в котором каждый элемент может хранить много статусов, хотя меня интересует только его последний статус.Теперь посмотрите на мои взгляды.
storage_items = StorageItem.objects\
.filter(client=client_id,itemstatushistory__isnull=False)\
.distinct()
total_items_in_stock = [item for item in storage_items \
if item.itemstatushistory_set.latest().status.description \
not in ['Destroyed','Permanent Retrieval']]
total_items_in_stock
показывает все элементы, которые не имеют последнего статуса с именами Destroyed
и Permanent Retrieval
.Однако есть проблема с этим.
Предположим, у меня есть некоторые элементы в моей базе данных - скажем, item1 {in, out, уничтожено}, item2 = {уничтожено, in}, item3 = {постоянное получение}, item4 = {}.Поскольку он ищет последний статус, он напечатает {item2}.Теперь я хочу напечатать item4 в общем количестве элементов в стеке.В основном item4 - это предмет без статуса.Но поскольку он не был Destroyed
или Permanent
Retrieval, его необходимо включить в список.Но я не могу найти выход из этого.Надеюсь, я все прояснил.
Шаблон
{{total_items_in_stock|length}}