详解Django的 create() 函数:创建对象

  • Post category:Python

Django的create()函数是ORM框架中的一个非常常用的方法之一,用于创建并保存一个新的模型实例。下面是create()函数的详细讲解和使用方法的完整攻略。

作用

create()函数的作用是在模型的管理器(objects)中创建一个新实例并将其保存到数据库中。它接受的参数与模型__init__方法的参数相同,并根据它们创建一个实例。

使用方法

语法

Model.objects.create(**kwargs)

其中,Model是你想要创建实例的模型类,kwargs则是使用键-值对表示的实例属性。

示例 1

假设我们有一个名为Person的模型类,具有name和age两个属性。我们可以使用create()方法来创建一个新的Person实例,如下所示:

from myapp.models import Person

Person.objects.create(name='Tom', age=20)

上面的代码将在Person管理器中创建一个新的实例,并将其保存到数据库中。

示例 2

有时候,我们需要创建多个实例,而不只是一个。在这种情况下,我们可以使用create()方法的一些高级功能。

例如,假设我们有一个名为Book的模型,其中包含title和author两个属性。我们可以使用create()方法创建多个Book实例,如下所示:

from myapp.models import Book

books = [
    {'title': 'The Great Gatsby', 'author': 'F. Scott Fitzgerald'},
    {'title': 'To Kill a Mockingbird', 'author': 'Harper Lee'},
    {'title': '1984', 'author': 'George Orwell'},
]

Book.objects.bulk_create(
    [Book(**kwargs) for kwargs in books]
)

上面的代码将使用bulk_create()方法创建三个新的Book实例,并将它们保存到数据库中。

注意事项

在使用create()方法时,需要注意:

  • 不需要调用save()方法,因为create()方法已经自动保存了新实例。
  • 如果模型的主键是自动增量的,则未指定主键的情况下create()方法将创建一个新的主键。
  • create()方法是与objects管理器相关联的方法,但您也可以使用其他管理器(例如related_query_name)来创建新实例。