【发布时间】:2013-03-15 10:50:03
【问题描述】:
我有一个简单的 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
我在这里错过了什么?
【问题讨论】:
-
django 会自动为您的模型分配一个 id 字段,您不需要手动声明它。另外,尝试删除您的 unicode 方法,看看它是否会打印您的 id