get_or_create
только делает это:
try:
obj = Person.objects.get(first_name='John', last_name='Lennon')
created = False
except Person.DoesNotExist:
obj = Person(first_name='John', last_name='Lennon', birthday=date(1940, 10, 9))
obj.save()
created = True
return obj, created
Вы можете реализовать свою собственную функцию следующим образом:
try:
obj = Person.objects.get(first_name='John', last_name='Lennon')
# if obj exists delete
obj.delete()
deleted = True
except Person.DoesNotExist:
obj = Person(first_name='John', last_name='Lennon', birthday=date(1940, 10, 9))
obj.save()
deleted = False
return obj, deleted