簡體   English   中英

當數量低於 django 中的再訂購水平時如何計算項目

[英]How to count items when their quantity is below reorder level in django

我在計算數量低於再訂購水平的項目時感到困惑。 重新排序級別也是一個項目的 model 中的一列,我想我需要在過濾器中比較它們在 __lte 中的值,但它不起作用。

模型.py

class Item(models.Model):

ItemName = models.CharField(max_length=255, blank=True, null=True)
Quantity = models.IntegerField(null=True, default=1,
    validators=[ 
        MaxValueValidator(100),
        MinValueValidator(0)
    ])
ModelNum = models.CharField(max_length=255, blank=True, null=True)
Category = models.ForeignKey(Category,on_delete=models.CASCADE, null=True)
date_created = models.DateTimeField(auto_now_add=True)
last_modified = models.DateTimeField(auto_now=True)
is_draft = models.BooleanField(default=True)
reorder_level = models.IntegerField(blank=True,  default=10,
    validators=[
        MaxValueValidator(100),
        MinValueValidator(1)
    ])

class Meta: 
    verbose_name_plural = 'Item'

def __str__(self):
    return f'{self.ItemName}'

視圖.py

def dashboard_inventory(request):


items_count = Item.objects.all().count()
reorder_count = Item.objects.filter(Quantity_lte=reorder_level).count()

context={

    'items_count' : items_count,

}

template_name ='inventory-admin/inventory-dashboard.html' 
return render(request, template_name, context)

您可以使用F expressions來比較這兩列,如下所示:

from django.db.models import F
Item.objects.filter(Quantity__lte=F('reorder_level')).count()

這將得到所有ItemQuantity小於或等於它自己的reorder_level

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM