使用 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
最佳答案
正如 Rebus 在评论中所说,您不需要显式定义主键。但是如果你这样做,你必须确保它是一个自动增量字段 - 即 AutoField
- 而不是你所拥有的基本 IntegerField
。按照您的方式,无法获得新 ID,这就是保存时它为空白的原因。
关于保存后的 MySQL + Django : No obj. id(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11787401/