MySQL + Django:save()之后没有obj.id

Nig*_*con 3 mysql django django-models auto-increment

使用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
>>>
Run Code Online (Sandbox Code Playgroud)

在数据库中:

id      first_name  last_name
------------------------------------------
14      First       Last
Run Code Online (Sandbox Code Playgroud)

Dan*_*man 6

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