保存后的 MySQL + Django : No obj. id()

标签 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
>>>

在数据库中:

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

最佳答案

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

关于保存后的 MySQL + Django : No obj. id(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11787401/

相关文章:

php - 使用 PHP 以 MySQL 格式打印结果

PHP 字符串作为 mysqli_fetch_array 的数组键

MYSQL 线程限制

python - 使用 django 自动完成灯时详细名称和帮助文本丢失

django-models - neo4django: AttributeError: 类型对象 'Model' 没有属性 '__metaclass__'

python - 如何在外键下拉列表中显示属性值而不是 ParentEvent 对象?

Django:输入图像文件的小写文件名

mysql - 带破折号的子字符串索引

django - Django模板:字典键的值,其中带有空格

python - PIL/JPEG 库 : "decoder jpeg not available"