如何在Django灯具中为DateTimeFields提供当前时间?

时间:2016-10-12 10:50:37

标签: django django-fixtures

我正在尝试为我的一个Django模型创建一个JSON fixture。

模型非常简单:

class Tag(models.Model):
    tag = models.CharField(max_length=50, null=True, blank=True)
    created_at = models.DateTimeField(auto_now_add=True)

我的装置也很简单:

[
  {
    "model": "myapp.tag",
    "pk": 1,
    "fields": {
      "tag": "Test 1"
    }
  },
{
    "model": "myapp.tag",
    "pk": 2,
    "fields": {
      "tag": "Test 2"
    }
  }
]

不幸的是,在尝试运行灯具时出现以下错误:

IntegrityError: NOT NULL constraint failed: myapp_tag.created_at

因此看起来auto_now_add=True在运行灯具时不会被调用。我不想硬编码某些日期,因为这看起来很奇怪。 (我也认为硬编码PK很奇怪。)

有没有办法让created_at日期今天自动使用?

作为奖励,PK会自动自动增加吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

auto_now_add=True只有在django向DB插入记录时才会起作用,否则它就无法工作。

要使其工作,请编写一个简单的python脚本并使用当前日期时间更新json文件,并尝试使用此命令将数据加载到DB。