在AutoField模型中指定主键时,为什么必须显式指定主键?

时间:2019-07-11 13:36:21

标签: oracle django-models

我有一个名为TestJbl的非常基本的Oracle表,其中包含两个字段:

ID(数字,不能为NULLABLE),它是主键。 数据(varchar2,可空)。

我希望能够不必指定ID列即可插入DATAS。

我的问题:即使在我的模型中ID显式设置为AutoField(primary_key = True),也可以看到以下信息:

class TestJbl(models.Model):
    id = models.AutoField(primary_key=True)
    datas = models.CharField(max_length=45, blank=True)
    class Meta:
        db_table = 'test_jbl'

当我尝试:

>>> a = TestJbl(datas='A')
>>> a.save()

我收到一个Oracle错误:

django.db.utils.IntegrityError: ORA-01400: cannot insert NULL into ("RTDIAG"."TEST_JBL"."ID")

这是为什么? AutoField是否不应该自动缩进主键?

NB:我正在使用Python 2.6.6和Django 1.5.5

0 个答案:

没有答案