如果我最初必须导入旧数据,如何对 Django 时间戳进行建模?



我有一些基本的时间戳字段,应该以auto_now_add结尾:

class Example(models.Model):
created = models.DateTimeField(auto_now_add=True)

但是,我需要从外部数据库播种初始 Django 项目数据库,其中这些创建时间戳已经为现有数据填充。

我想我可能需要执行以下操作:

  1. 入手created = models.DateTimeField(default=timezone.now)

  2. 导入旧数据库数据

  3. 迁移到created = models.DateTimeField(auto_now_add=True)

这是否有必要保留旧的时间戳,或者我可以从所需的auto_now_add开始并以某种方式导入而忽略它?

基于 Django 文档 forauto_now_add,使用该标志将导致该字段不可编辑:

如当前实现的那样,将auto_now或auto_now_add设置为 True 将导致字段设置可编辑=False 和空白 = True。

考虑到这一点,您可以按照您的建议使用default=timezone.now并在文档中提到。

最新更新