使用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
答案 0 :(得分:6)
正如Rebus在评论中所说,您不需要明确定义主键。但如果你这样做,你必须确保它是一个自动增量字段 - 即AutoField
- 而不是你所拥有的基本IntegerField
。你拥有它的方式,没有办法获得一个新的ID,这就是为什么它在保存时是空白的。
答案 1 :(得分:0)
系统生成的数据库密钥必须由数据库设置,否则您将没有多用户数据库。