因此,首先,没有挂起的迁移。
我得到:
[...]
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实例。
答案 0 :(得分:0)
在创建“增强型”实例之前删除旧实例就可以了。