📅  最后修改于: 2023-12-03 15:14:44.495000             🧑  作者: Mango
在 Django 中,当你使用模型类创建一个新的对象时,可以通过以下几种方式获取新创建对象的 id。
创建 Django 模型对象后,之后调用 save()
方法保存对象,并通过 id
属性获取新创建对象的 id。示例代码如下所示:
from myapp.models import MyModel
new_object = MyModel(field1='value1', field2='value2')
new_object.save()
new_object_id = new_object.id
以上代码创建了一个 MyModel
对象,并将其保存到数据库中。然后可以通过 id
属性获取新创建对象的 id。
Django 的模型管理器 (Manager) 提供了 create()
方法,可以一次性创建并保存新对象,并返回创建的对象。示例代码如下所示:
from myapp.models import MyModel
new_object = MyModel.objects.create(field1='value1', field2='value2')
new_object_id = new_object.id
以上代码使用 create()
方法创建并保存了新的 MyModel
对象,并返回该对象。通过对象的 id
属性可以获取新创建对象的 id。
有时候,我们希望在创建对象的同时,直接获取到新创建对象的 id,而不需要再次查询数据库。Django 中的 Model.objects.get_or_create()
方法就可以满足这个需求。示例代码如下所示:
from myapp.models import MyModel
new_object, created = MyModel.objects.get_or_create(field1='value1', field2='value2')
new_object_id = new_object.id
以上代码使用 get_or_create()
方法创建一个 MyModel
对象,并返回该对象以及一个布尔值 created
。created
是一个标志,指示对象是否是新创建的。通过对象的 id
属性可以获取新创建对象的 id。
注意:在使用 get_or_create()
方法时,如果已存在具有相同属性的对象,则直接返回已存在的对象,并不会创建新对象。
以上是在 Django 中获取新创建对象的 id 的几种方式。你可以根据具体的需求和场景选择适合的方式来获取新对象的 id。