【发布时间】:2021-01-26 06:40:56
【问题描述】:
我有一个带有 au 自动字段的模型,它的主键如下:
class historical_recent_data(models.Model):
id = models.AutoField(primary_key=True, auto_created = True)
reference = models.CharField(max_length=100, verbose_name= 'reference')
Date = models.DateField()
Quantity = models.FloatField(default=0)
NetAmount = models.FloatField(default=0)
def __str__(self):
return self.reference
现在,当我想使用模板中的表单将数据输入到 db 表中时,Django 尝试将 id 字段的值设为 1,从而导致以下错误:
duplicate key value violates unique constraint "dashboard2_historical_recent_data2_pkey1"
DETAIL: Key (id)=(2) already exists.
这个db表有11000多个值,为什么django在新的表单被投到表的时候不会自动生成pk为11001?
更新:我最初的问题是为什么自动字段从 1 递增而不是从表中最大的 pk 值开始递增。
【问题讨论】:
-
您有
id和Id字段?请不要。大多数数据库都有不区分大小写的列匹配,所以列FOO和foo是一样的。 -
是的,哈哈,这是一个试用项目,Id实际上是指零件的序列号。确定它会在以后引起问题,但到目前为止,在我进行实验时它仍然存在,我认为这不是手头问题的根源,或者是吗?
-
好吧,我强烈建议给它另一个名称,或者至少指定一个具有不同值的
db_column=...参数。可能有冲突。 -
好的,我试试看
-
将 ID 更改为其他内容并没有成功
标签: django postgresql