📜  django 获取新创建对象的 id - Python (1)

📅  最后修改于: 2023-12-03 15:14:44.495000             🧑  作者: Mango

Django 获取新创建对象的 id

在 Django 中,当你使用模型类创建一个新的对象时,可以通过以下几种方式获取新创建对象的 id。

1. 使用 save() 方法后获取 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。

2. 使用 create() 方法后获取 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。

3. 同时获取并返回 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 对象,并返回该对象以及一个布尔值 createdcreated 是一个标志,指示对象是否是新创建的。通过对象的 id 属性可以获取新创建对象的 id。

注意:在使用 get_or_create() 方法时,如果已存在具有相同属性的对象,则直接返回已存在的对象,并不会创建新对象。

以上是在 Django 中获取新创建对象的 id 的几种方式。你可以根据具体的需求和场景选择适合的方式来获取新对象的 id。