Se puede lograr usando Model.objects.get_or_create()
Ejemplo
obj, created = Person.objects.get_or_create(
first_name='John',
last_name='Lennon',
defaults={'birthday': date(1940, 10, 9)},
)
Cualquier argumento de palabra clave (aquí first_name y last_name ) pasado a get_or_create () - excepto uno opcional llamado defaults - se usará para consultar en la base de datos (encontrar el objeto) en la base de datos.
Devuelve una tupla, si se encuentra un objeto, get_or_create () devuelve una tupla de ese objeto y False.
Nota : Lo mismo también se puede lograr usando try except
declaraciones
Ejemplo:
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()