3

使用 Django 和 MySQL。我保存模型,没有出现任何 id。看到 PostgreSQL 和 bigintegerfields 的一些类似问题,但这些似乎都不适用于这里。有任何想法吗?客户端确实通过 MySQL 自动增量在数据库的 id 字段中接收到主键。

谢谢!

class Client(models.Model):
    id = models.IntegerField(primary_key=True)
    first_name = models.TextField(null=True, blank=True)
    last_name = models.TextField(blank=True)


>>> client = models.Client(last_name="Last", first_name="First")
>>> client.last_name
'Last'
>>> client.save()
>>> client.id
>>> client.last_name
'Last'
>>> client.id
>>> client.pk
>>>

在数据库中:

id      first_name  last_name
------------------------------------------
14      First       Last
4

2 回答 2

6

正如 Rebus 在评论中所说,您不需要明确定义主键。但如果你这样做,你必须确保它是一个自动增量字段——即AutoField——不是IntegerField你所拥有的基本字段。你拥有它的方式,没有办法获得一个新的 ID,这就是为什么它在保存时是空白的。

于 2012-08-03T07:37:28.313 回答
0

系统生成的数据库密钥必须由数据库设置,否则您将不会拥有多用户数据库。

于 2012-08-02T23:52:58.483 回答