我已经在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)
现在我对以下字段有问题:
^{pr2}$因此,在创建模型的一开始,它应该没有任何值,但是一旦模型中的一个条目被更新,validTO就应该被更新。在
一旦我创建了模型(makemigrations,migrate),我想加载一个初始的_数据.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)。在
auto-unw-now-add与auto-unu-now类似,但它只在创建记录时添加一次“now”。如果您使用auto_now,它将为初始添加保存,就像auto-unu-now-add功能一样,然后在每次更新记录时继续更新到“now”。在
这个字段好像有一个null,不应该是null,可能是因为这个错误的定义。在
要循环并保存(步骤3),请创建以下python脚本并从shell运行它:
^{pr2}$相关问题 更多 >
编程相关推荐