创建的NULL约束失败Django 2.2.1

时间:2019-05-27 14:30:55

标签: django django-models

因此,首先,没有挂起的迁移。

我得到:

[...]
  File "C:\Program Files\Python37\lib\site-packages\django\db\backends\sqlite3\base.py", line 383, in execute
    return Database.Cursor.execute(self, query, params)
django.db.utils.IntegrityError: NOT NULL constraint failed: backup_basenode.created

在此行:

        node = Node(id=old_node.id, name=clean["name"], customer=customer)
        node.save()

相关模型:

class BaseNode(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    created = models.DateTimeField(auto_now_add=True)
    modified = models.DateTimeField(auto_now=True)
    def __str__(self):
        return f"{str(self.id)}"

class Node(BaseNode):
    customer = models.ForeignKey(Customer, on_delete=models.CASCADE)
    name = models.CharField(max_length=200)
    def __str__(self):
        return f"{self.name}({self.customer})"

从我收集的数据来看,应该自动填充创建的字段,因此不应该为null?

关于预期的行为,我试图将BaseNode提升为Node,因为我还没有找到一种直接的方式,所以我创建了一个新的Node实例并删除了BaseNode实例。

1 个答案:

答案 0 :(得分:0)

在创建“增强型”实例之前删除旧实例就可以了。