Django确实分配但不存储主键值

时间:2013-03-15 10:50:04

标签: django model sqlite

我有一个简单的django模型

class Directory(models.Model):

  id = models.AutoField(primary_key=True)
  path = models.TextField(unique=True)

  def __unicode__(self):
    return self.path

  class Meta:
    db_table = u'directories'

但是,将Directory实例保存到db

中似乎存在一些问题
>>> from cygapp.models import Directory
>>> d = Directory()
>>> d.path = '/usr'
>>> d.id
>>> d.save()
>>> d.id
4
>>> d
<Directory: /usr>

在正确分配ID字段(下一个空闲值)时,它不存储在db

sqlite> select * from directories;
1|/bin
2|/system/lib
3|/system/bin
|/usr

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

您保存记录的所有操作都是正确的,并且应分配自动ID。

删除您的自定义ID字段id = models.AutoField(primary_key=True),因为Django会自动为您执行此操作。然后删除“目录”表并运行python manage.py syncdb。这将确保您的模型上有正确的id字段。