【发布时间】:2016-05-21 23:10:09
【问题描述】:
我已经在我的 postgreSQL9.4 数据库中实现了一些模型和迁移。我有一些模型。例如 SkillLevelRuleModel:
class SkillLevelRule(models.Model):
skillLevelRuleID = models.AutoField(primary_key=True)
skillCategoryID = models.ForeignKey(SkillCategory, default=1)
skillLevelID = models.ForeignKey(SkillLevel, default=1)
threshold = models.IntegerField()
validFrom = models.DateTimeField(default=datetime.now)
validTo = models.DateTimeField(auto_now_add=False, auto_now=True)
现在我对以下字段有疑问:
validTo = models.DateTimeField(auto_now_add=False, auto_now=True)
所以在模型创建的时候它应该没有值,但是一旦模型中的条目被更新,validTO应该被更新。
一旦我创建了模型(makemigrations,migrate),我想加载一个 initial_data.json 来加载初始数据。
很遗憾,我收到以下错误:
Could not load rewardsystem.SkillLevelRule(pk=6): null value in column "validTo" violates not-null constraint
DETAIL: Failing row contains (6, 2, 2016-02-11 08:46:29.267201+00, null, 1, 1).
我的 .json 文件和该模型的相应条目如下所示:
{
"model": "rewardsystem.SkillLevelRule",
"pk": 6,
"fields":{
"skillCategoryID" : "1",
"skillLevelID" : "1",
"threshold" : "2"
}
},
我不明白为什么会发生这种情况以及我应该如何防止它。我不希望在开始时设置 validTo 字段。为什么?这个模型保存了规则,或者说是阈值。当模型被实例化时,它们从一开始就有效。也许在系统运行的某个时刻,管理员喜欢更改一些规则。因此,他应该能够指定某个规则何时有效(validTO)。
【问题讨论】:
标签: python json django error-handling django-fixtures