Метод create

Метод create применяется к менеджеру модели и создает новый объект, сразу сохраняя его в базе данных. В качестве аргументов принимает значения полей модели в виде ключевых параметров, где ключ - имя поля, а значение - присваиваемое ему значение. Метод возвращает созданный объект модели, что позволяет сразу использовать его в коде без дополнительного запроса к базе данных. В отличие от комбинации save, этот метод выполняет сохранение одной операцией, что делает код более лаконичным.

Синтаксис

pythonModel.objects.create(**kwargs)

Пример

Давайте создадим новую статью с полями 'title' и 'status':

pythonfrom myapp.models import Article

article = Article.objects.create(
  title="My first article",
  status="published"
)
print(article.title)
print(article.status)

Результат выполнения кода:

python"My first article"
"published"

Пример

Создадим статью с явным указанием даты создания:

pythonfrom 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)

Результат выполнения кода:

python"42"
"2025-01-15 10:30:00"

Пример

Создадим статью со связанной моделью через внешний ключ:

pythonfrom 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)

Результат выполнения кода:

python"Technology"
"Django tips"

Пример

Создадим несколько статей в цикле с помощью create:

pythonfrom 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)

Результат выполнения кода:

python"43"
"44"
"45"

Смотрите также

  • метод save,
    который сохраняет изменения существующего объекта
  • метод get_or_create,
    который получает или создает объект по условиям
  • метод update_or_create,
    который обновляет или создает объект по условиям
  • метод bulk_create,
    который создает несколько объектов одной операцией