나는 json 필드에 저장된 값을 가진 장고 모델이 있습니다. 하지만 일부 값은 고유해야합니다. check_unique() 함수가 있습니다. 그러나 check_unique()가 실행되지 않아 두 사용자가 동일한 값을 동시에 저장하려고 시도하면 값이 데이터베이스에 저장되지 않고 개별적으로 올바르게 저장되므로이 검사는 실패합니다. 이 문제를 방지하는 방법이 있습니까? 나는 trheadeing.Lock을 사용하여 이것을 피하려고 노력했다. 그러나 아파치는 다른 프로세스에서 실행되며,이 경우에는 작동하지 않는다.자기 제외 장고 함수의 호출
게다가, 나는 (파이썬에서) 응용 프로그램 수준에서 확인하고 데이터베이스 수준이 아닌 것이 좋겠다.
코드는 다음과 같습니다
semaphore.claim()
try:
uniques = check_unique(self.answers)
if not uniques:
self.go_save()
semaphore.release()
return Response("All OK")
except Exception as e:
semaphore.release()
return e