Można to osiągnąć za pomocą Model.objects.get_or_create()
Przykład
obj, created = Person.objects.get_or_create(
first_name='John',
last_name='Lennon',
defaults={'birthday': date(1940, 10, 9)},
)
Wszelkie argumenty słów kluczowych (tutaj first_name i last_name ) przekazane do get_or_create () - z wyjątkiem opcjonalnego o nazwie defaults - zostaną użyte do zapytania w bazie danych (znalezienia obiektu) w bazie danych.
Zwraca krotkę, jeśli obiekt zostanie znaleziony, get_or_create () zwraca krotkę tego obiektu i False.
Uwaga : to samo można osiągnąć za pomocą try except
instrukcji
Przykład:
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()