Метод create
Метод create применяется к менеджеру модели и создает новый объект, сразу сохраняя его в базе данных. В качестве аргументов принимает значения полей модели в виде ключевых параметров, где ключ - имя поля, а значение - присваиваемое ему значение. Метод возвращает созданный объект модели, что позволяет сразу использовать его в коде без дополнительного запроса к базе данных. В отличие от комбинации save, этот метод выполняет сохранение одной операцией, что делает код более лаконичным.
Синтаксис
Model.objects.create(**kwargs)
Пример
Давайте создадим новую статью с полями 'title' и 'status':
from myapp.models import Article
article = Article.objects.create(
title="My first article",
status="published"
)
print(article.title)
print(article.status)
Результат выполнения кода:
"My first article"
"published"
Пример
Создадим статью с явным указанием даты создания:
from myapp.models import Article
from datetime import datetime
article = Article.objects.create(
title="Article with date",
created_at=datetime(2025, 1, 15, 10, 30, 0)
)
print(article.id)
print(article.created_at)
Результат выполнения кода:
"42"
"2025-01-15 10:30:00"
Пример
Создадим статью со связанной моделью через внешний ключ:
from myapp.models import Article, Category
category = Category.objects.create(name="Technology")
article = Article.objects.create(
title="Django tips",
category=category,
status="published"
)
print(article.category.name)
print(article.title)
Результат выполнения кода:
"Technology"
"Django tips"
Пример
Создадим несколько статей в цикле с помощью create:
from myapp.models import Article
titles = ["First article", "Second article", "Third article"]
for title in titles:
article = Article.objects.create(
title=title,
status="draft"
)
print(article.id)
Результат выполнения кода:
"43"
"44"
"45"
Смотрите также
-
метод
save,
который сохраняет изменения существующего объекта -
метод
get_or_create,
который получает или создает объект по условиям -
метод
update_or_create,
который обновляет или создает объект по условиям -
метод
bulk_create,
который создает несколько объектов одной операцией