안녕하세요. 이번 시간에는 django admin의 list_filter에 대해 간단하게 알아보고, range filter를 적용하는 방법도 같이 알아볼까 합니다. 먼저, list_filter는 오른쪽에 FILTER로 나오는 것을 의미해요. post 모델에 대해서, "user"로 필터를 걸어보겠습니다. 그러면, admin의 post view 페이지에서 FILTER 부분은 chokw, chokw1이 나오게 되는데요. post에서 user는 auth.user를 참조하는 외래키입니다. chokw1을 선택했을 때, 어떻게 쿼리가 날라가는지 보겠습니다. user__id__exact=2로 날라갑니다. foreign key의 id값과 일치하는 것일까요? chokw1이라는 username을 가진 유저는 id가 2네요...
Range 검색 결과
클린 코드를 스터디 하면서 제가 이전에 짠 코드들을 리팩토링 하고 있는데요. 제가 출제한 문제인 22232번은 코딩 테스트에 꽤 나오는 유형입니다만, 제가 코드를 깔끔하게 짜지 않은 탓에 스터디 재료가 되고 말았습니다. 스터디를 하다가 스트림과 람다에 대해서 오갔는데요. 다른 분의 코드를 보다가, 입력 부분을 Intstream과 range 등을 이용해서 깔끔하게 처리할 수 있다는 것을 보고 놀랐습니다. 사실 이전에도, 한 분이 기여를 해 주셔서 스트림과 람다의 존재는 알고 있었지만, 신세계였습니다. 심지어, String을 Integer로 변환하는 작업도 Stream을 잘 이용하면 잡스러운 로직들을 간결하게 짤 수 있다는 걸 보고 너무 놀랐습니다. 아무튼, 코드를 분석해 보면서 배운 점이 많았는데요. 그 ..
python에는 random이 있습니다. 여기에 있는 메서드 중에서 sample과 choices의 차이를 알아봅시다. 먼저 예제 1번을 보겠습니다. 왠 리스트가 있는데요. li는 [1, 2, 3, 4, 5]입니다. 4번째 줄에서 rd.choices와 rd.sample을 호출하는데요. 결과만 보겠습니다. 전자는 [1, 1]이 나왔습니다. 그런데, 후자는 그렇지 않았네요. [1, 1]이 나온 경우도 있었습니다. 쉽게 말해서, choices는 공 n개가 있습니다. 먼저 n개 중에 하나를 뽑았습니다. 결과를 보고 다시 넣습니다. 그러면 공 n개가 들어 있을 겁니다. n개 중에 하나를 또 뽑습니다. 즉, 표본 크기가 n이라면, 그 중 하나를 뽑고, 다시 넣는 작업을 반복합니다. sample은 그렇지 않습니다. n..
이번 시간에는 for in문에 많이 써먹는 range에 대해 알아보겠습니다. range는 공식 문서에 따르면 sequence 입니다. 그리고 이터레이터를 제공하는, 불변 객체입니다. 그래서 어떻게 써야 하는지 알아봐야 겠습니다. 예제 5개를 보도록 하겠습니다. 먼저 1번째 예제입니다. range(5)만 있습니다. 이것은 끝만 있습니다. 문서에 따르면 stop만 있습니다. 그리고 start가 없는데요. 이 경우에는 시작이 0이다라는 것이 생략되어 있습니다. default가 0인 셈입니다. 그리고 스텝 수 default 값은 1입니다. 이에 대한 설명은 밑에서 이야기 하겠습니다. 실행 결과는 0, 1, 2, 3, 4가 나옵니다. 끝 원소인 5가 포함되지 않았다는 것이 중요합니다. 그리고 1씩 증가했다는 사실..
최근댓글