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)来创建新实例。