django - 如何获取库存系统中每个项目的当前库存数量?
问题描述
我想在 django admin 中总结每个项目的当前库存数量。在项目页面中,每个项目都有一列,我想在项目的每一列中显示数字。这是我的模型:
from django.contrib.auth.models import User
from django.db import models
class Item(models.Model):
item_name = models.CharField(max_length=128)
class In(models.Model):
in_date = models.DateTimeField()
item = models.ForeignKey(Item, on_delete=models.CASCADE, related_name='ins')
quantities = models.IntegerField()
class Out(models.Model):
out_date = models.DateTimeField()
item = models.ForeignKey(Item, on_delete=models.CASCADE, related_name='outs')
quantities = models.IntegerField()
Model In 表示入库,Out 表示缺货
我在 admin.py 中编写函数,如下所示:
class ItemAdmin(admin.ModelAdmin):
list_display = ['item_name', 'pattern', 'vendor', 'item_ins', 'item_outs']
def item_ins(self, obj):
return obj.ins.aggregate(Sum('quantities')).get('quantities__sum')
item_ins.short_description = 'stock-in'
def item_outs(self, obj):
return obj.outs.aggregate(Sum('quantities')).get('quantities__sum')
item_outs.short_description = 'stock-out'
我已经知道如何汇总每个项目的总入库/出库数量,但我不知道如何获取每个项目的当前库存数量(入库减去出库)。
请帮我!谢谢!
解决方案
最简单但不是那么有效的实现是
def item_quantity(self, obj):
return self.item_ins(obj)-self.item_outs(obj)
推荐阅读
- python - MyPy - 赋值中不兼容的类型(表达式的类型为 None,变量的类型为 X)
- elasticsearch - 从 logstash 发送的日志尚未在 elasticsearch 中编制索引
- image - Cypress,使用 attachFile() 拖放图像或视频
- button - 多状态切换按钮的 ARIA?
- python - 为什么我的交叉验证搜索会为大型数据集生成 nan 分数?
- python - 在 MECX 上检索钱包余额 - Python 中的 API 身份验证(签名)
- azure - 阻止端点接收大量不需要的第 3 方流量(类似探测)
- git - Git Stash 应用到本地分支的 Master 上
- grafana - 限制 grafana 用户创建任何新文件夹
- macros - 飞行中的Macropad?