【发布时间】:2019-01-14 02:27:54
【问题描述】:
我有一个模型:
PRODUCT_EXPIRY 型号:
product_id = model.IntegerField()
expires_in = model.IntegerField() --days count
另一个模型为:
产品:
product_id = model.IntegerField()
expires_in = model.IntegeField(blank=True) --days count
name = model.CharField()
price = model.FloatField()
...other fields
我想要的是,让一个商店添加产品,这里expires_in(天数)的产品是可选的,他可以选择在添加产品时手动添加,或者如果他不添加,那么过期时间是从product_expire 模型输入,通过product_id 映射。
但是考虑以下情况:
- Milk X 有 3 天的保质期。
- 牛奶 Y 有 60 天的保质期。
- 可可粉的保质期为 6 个月。
当商店输入产品时,假设他至少在生产日期后 10 天后收到它。因此,添加可可粉时的expire_in 应为60-10 = 50 days,即有效期超过 30 天的产品。由于牛奶车每天运送牛奶,因此有效期少于 30 天的产品将具有相同的有效期而没有任何更改,即添加牛奶 expires_in 为牛奶 X 将是 3 days。我该怎么做? Product 模型 expired_in 必须是外键吗?
例如: 假设我们知道可乐在 1 个月后过期,那么如果商店忘记输入过期日期,则添加的自动过期日期应为 20 天。因此,如果产品即将过期,我可以通知商店。但对于牛奶到期添加应无任何变化。
或者我是否必须通过覆盖产品模型的保存功能为此构建自定义算法?
我现在的想法是:
- 将其保留为
IntegerField,并添加另一个字段为DateTime, 如果输入日期时间字段,则使用该字段,否则使用expired_in字段,并覆盖保存功能。 - 稍后通过 pandas 或一些自定义 python 脚本处理空白值。 但是有没有简单的方法?
【问题讨论】:
-
更好地使用到期日期,然后您可以计算剩下多少天想象一个员工计算产品到期还有多少天......它会减慢条目,更好地使用到期日期
标签: django database algorithm django-models foreign-keys