【发布时间】:2014-02-27 22:36:58
【问题描述】:
我正在创建一个在线订购系统,用于定期销售商品(蔬菜盒送货上门)。我有一个“订单”模型(简化)如下:
class BoxOrder(models.Model):
customer = models.ForeignKey(Customer)
frequency = models.IntegerField(choices=((1, "Weekly"), (2, "Fortnightly)))
item = models.ForeignKey(Item)
payment_method = models.IntegerField(choices=((1, "Online"), (2, "Free)))
现在我的“客户”可以更改订单的频率,或更改出售的“商品”(比如“胡萝卜”),甚至可以一起删除订单。
我想做的是为该周处理的所有订单创建每周“备份”,这样我就可以看到每周售出的所有订单的历史图表。仅将订单归档到另一个表/数据库的问题是,如果某个项目(比如我不再出售胡萝卜)由于某种原因被删除,那么归档的 BoxOrder 将因为 ForeignKeys
使用 Django 创建归档系统的最佳解决方案是什么 - 以便在 Django 管理员中查看历史上每周的订单,并且它们是“静态的”(即与是否删除任何其他对象无关)?
我考虑过创建一个新的“平面”BoxOrderArchive 模型,然后使用 cron 作业来移动给定一周的订单,例如:
class BoxOrderArchive(models.Model):
customer_name = models.CharField(max_length=20)
frequency = models.IntegerField()
item_name = models.CharField() # refers to BoxOrder.item.name
item_price = models.DecimalField(max_digits=10, decimal_places=2) # refers to BoxOrder.item.price
payment_method = models.IntegerField()
但我觉得这可能是很多额外的工作。在我走这条路之前,很高兴知道是否有人有其他解决方案?
谢谢
【问题讨论】:
标签: python django cron foreign-keys