Этого можно добиться с помощью Model.objects.get_or_create()
пример
obj, created = Person.objects.get_or_create(
first_name='John',
last_name='Lennon',
defaults={'birthday': date(1940, 10, 9)},
)
Любые аргументы ключевого слова (здесь first_name и last_name ), переданные в get_or_create (), за исключением необязательного аргумента, называемого defaults, будут использоваться для запроса в базе данных (поиска объекта) в базе данных.
Он возвращает кортеж, если объект найден, get_or_create () возвращает кортеж этого объекта и False.
Примечание : того же можно добиться с помощью try except
операторов
Пример:
try:
obj = Person.objects.get(first_name='John', last_name='Lennon')
except Person.DoesNotExist:
obj = Person(first_name='John', last_name='Lennon', birthday=date(1940, 10, 9))
obj.save()