0

我有一个简单的 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 实例保存到数据库中似乎存在一些问题

>>> from cygapp.models import Directory
>>> d = Directory()
>>> d.path = '/usr'
>>> d.id
>>> d.save()
>>> d.id
4
>>> d
<Directory: /usr>

虽然正确分配了 ID 字段(下一个自由值),但它没有存储在数据库中

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

我在这里想念什么?

4

1 回答 1

0

您为保存记录所做的一切都是正确的,并且应该分配一个自动 ID。

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

于 2013-03-15T11:04:40.873 回答