Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Django South向现有模型添加自动增量字段?_Django_Django Models_Django South - Fatal编程技术网

使用Django South向现有模型添加自动增量字段?

使用Django South向现有模型添加自动增量字段?,django,django-models,django-south,Django,Django Models,Django South,我有一个Django项目,它从一个遗留数据库的导入开始。因此,存在一个具有复合主键的模型。只要我只使用遗留数据,这就行了,但现在我想添加新数据,我创建的表单告诉我,我正在尝试插入重复数据,大概是因为它只将其中一个字段作为主键 现在我想将模型更改为使用自动递增主键,就像Django自动添加的主键一样。我尝试从字段中删除主键属性,并将它们放在元内部类的unique_中。当我对South运行schemamigration时,它希望按预期添加一个id字段,但它要求一个默认值 如何指定South应该以某种

我有一个Django项目,它从一个遗留数据库的导入开始。因此,存在一个具有复合主键的模型。只要我只使用遗留数据,这就行了,但现在我想添加新数据,我创建的表单告诉我,我正在尝试插入重复数据,大概是因为它只将其中一个字段作为主键

现在我想将模型更改为使用自动递增主键,就像Django自动添加的主键一样。我尝试从字段中删除主键属性,并将它们放在元内部类的unique_中。当我对South运行
schemamigration
时,它希望按预期添加一个
id
字段,但它要求一个默认值

如何指定South应该以某种方式分配唯一的键,这种方式对于自动增量字段来说是合理的?(即,将序列[1…n]分配给记录的任意顺序)


如果这是不可能的,是否有其他方法来完成同样的事情,最好是使用Django和South?

我通过一个变通方法解决了需要我完成的问题:

我用
INSERT-into将数据从原始表复制到SQL中的临时表中。。。选择…
。然后我删除了原始表,并用autoincrement字段重新创建了它。然后我将数据复制回新表,并通过
INSERT
命令自动添加自动增量值。最后,我执行了一次模拟的South迁移,以使South的表和新模式一致