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 를 던지는 문제로 '추측'하고있다.
댓글 없음:
댓글 쓰기