用于种子库存的 SQLite Django 模型
SQLite Django Model for Inventory of Seeds
我正在尝试为处理种子销售的 Django 应用程序构建库存模型。种子以单一品种的 3、5 或 10 粒种子为一包储存和销售(例如:3 包芥菜种子)。
我想将 x 数量的产品添加到库存中,每个条目都有一个价格,并且只要该条目还有剩余的物品(数量字段 > 0),就以该价格销售该产品,即使以后的条目已被删除为相同的产品和展示而制作,但价格不同,所以我有以下型号:
class Product(models.Model):
name = models.CharField(max_length=100)
class Presentation(models.Model):
seed_qty = models.IntegerField()
class Stock(models.Model):
date = models.DateField(auto_now=True)
quantity = models.IntegerField()
product = models.ForeignKey(Product, on_delete=models.CASCADE)
presentation = models.ForeignKey(Presentation, on_delete=models.CASCADE)
cost = models.FloatField(null=True, blank=True)
sell_price = models.FloatField(null=True, blank=True)
我想知道我是否真的应该通过 GeneralEntry 中间模型将 Product 和 Stock 与 ManyToMany 字段相关联,我将在其中存储 date_added、演示文稿和 cost/price。
我的问题是,当我为同一产品和演示文稿添加多个库存条目时,我似乎无法查询每个产品的每个可用(数量>0)库存条目的最早价格。
到目前为止我尝试过的是:
stock = Stock.objects.filter(quantity__gt=0).order_by('-date')
stock = stock.annotate(min_date=Min('date')).filter(date=min_date)
但是 returns 那个 max_date 没有定义。
关于如何查询或重新排列此模型的任何想法?
谢谢!
*** 更新:我没有使用 django.db.models 中的 F() 函数。
这样做有效:
stock = Stock.objects.filter(quantity__gt=0).order_by('-date')
stock = stock.annotate(min_date=Min('date')).filter(date=F('min_date'))
原来我没有使用 django.db.models 中的 F() 函数。
这样做有效:
stock = Stock.objects.filter(quantity__gt=0).order_by('-date')
stock = stock.annotate(min_date=Min('date')).filter(date=F('min_date'))
我正在尝试为处理种子销售的 Django 应用程序构建库存模型。种子以单一品种的 3、5 或 10 粒种子为一包储存和销售(例如:3 包芥菜种子)。
我想将 x 数量的产品添加到库存中,每个条目都有一个价格,并且只要该条目还有剩余的物品(数量字段 > 0),就以该价格销售该产品,即使以后的条目已被删除为相同的产品和展示而制作,但价格不同,所以我有以下型号:
class Product(models.Model):
name = models.CharField(max_length=100)
class Presentation(models.Model):
seed_qty = models.IntegerField()
class Stock(models.Model):
date = models.DateField(auto_now=True)
quantity = models.IntegerField()
product = models.ForeignKey(Product, on_delete=models.CASCADE)
presentation = models.ForeignKey(Presentation, on_delete=models.CASCADE)
cost = models.FloatField(null=True, blank=True)
sell_price = models.FloatField(null=True, blank=True)
我想知道我是否真的应该通过 GeneralEntry 中间模型将 Product 和 Stock 与 ManyToMany 字段相关联,我将在其中存储 date_added、演示文稿和 cost/price。
我的问题是,当我为同一产品和演示文稿添加多个库存条目时,我似乎无法查询每个产品的每个可用(数量>0)库存条目的最早价格。
到目前为止我尝试过的是:
stock = Stock.objects.filter(quantity__gt=0).order_by('-date')
stock = stock.annotate(min_date=Min('date')).filter(date=min_date)
但是 returns 那个 max_date 没有定义。
关于如何查询或重新排列此模型的任何想法?
谢谢!
*** 更新:我没有使用 django.db.models 中的 F() 函数。
这样做有效:
stock = Stock.objects.filter(quantity__gt=0).order_by('-date')
stock = stock.annotate(min_date=Min('date')).filter(date=F('min_date'))
原来我没有使用 django.db.models 中的 F() 函数。
这样做有效:
stock = Stock.objects.filter(quantity__gt=0).order_by('-date')
stock = stock.annotate(min_date=Min('date')).filter(date=F('min_date'))