Django ORM의 Case-Sensitive 검색 (MySQL)
얼마전 동료에게 CS(Customer Service) 문의가 들어왔다. A 유저가 투표한 내용이 B 유저에게 노출이 됐다는 것이다. 내가 보기엔 꽤나 흥미롭고 귀찮은 이슈였는데(😭), 동료가 분석한 원인은 다음과 같았다. A가 '홍길동'에게 투표했음 A의 고유 ID는 ABCDE B의 고유 ID는 ABcdE (대소문자만 다름) Django 서버는 DB 설정에 따라서 대소문자를 구별함 (utf8_general_ci) Django ORM filter()를 통해 case-sensitive한 쿼리(__exact__ field lookup)를 보내도, DB에서 case-insensitive하게 처리 DB에서 case-insensitive하게 처리하므로 A와 B는 동일한 사용자로 판단 이는 MySQL의 collati..
Server Framework/Django
2022. 3. 4. 05:30
링크
공지사항
최근에 달린 댓글
- Total
- Today
- Yesterday