Django update_or_create 사용 시 주의 - 데이터 중복발생 가능성
update_or_create() 를 사용해서 편리하게 데이터가 있으면 업데이트, 없으면 생성하고있었는데... raise self.model.MultipleObjectsReturned( ehr.models.AnnualLeaveDetail.MultipleObjectsReturned: get() returned more than one AnnualLeaveDetail -- it returned 2! 확인해보니, get_or_create() 가 DB레벨의 Unique는 보장하지 않는다. As described above in get_or_create() , this method is prone to a race-condition which can result in multiple rows being inserted simultaneously if uniqueness is not enforced at the database level. 참조: https://docs.djangoproject.com/en/4.0/ref/models/querysets/#update-or-create But, In my case, 구 버전의 일부 IE에서 중복으로 AJAX 를 던지는 문제로 '추측'하고있다.