우리는 장고에서 오른쪽에 나타나는 list filter를 custom하게 만들고 싶습니다. 예를 들어, ㄱㄴㄷ 순으로 본다던지. 이러한 경우, 우리는 custom하게 필터를 줄 수 있는데요. 그 방법에 대해 알아보겠습니다. 먼저 admin의 SimpleListFilter를 override합니다. 저는 유저 이름을 가지고 필터를 만들 것이니, class 이름은 UserNameFilter로 하겠습니다. title과 paramter_name은 각각 "username", "username"으로 하였는데요. 이 둘의 역할은 추후에 설명하겠습니다. 여기에서는 2개의 함수를 override를 할 것인데요. lookups와 queryset 이 둘을 override 할 겁니다. 먼저, lookups는 필터에 어느 값이 ..
Filter 검색 결과
제가 생각했을 때, kibana에서 discovery를 볼 때의 핵심은 filter를 잘 거는 것입니다. 예를 들자면, 우리는 status가 4xx 대인 것만 필요로 합니다. 그런데 2xx인 것까지 볼 필요가 전혀 없을 것입니다. 이는 visualize 할 때도 마찬가지입니다. KQL을 이용해서 필터를 걸어보겠습니다. 여기서 KQL은 Kibana Query Language를 의미합니다. 8.5.0 버전을 기준으로 작성되었으니 참고 부탁드립니다. Sample data중 하나인 항공 데이터입니다. 각 항공편에 대해 여러 유용한 정보들이 있는데요. 비행 거리가 얼마인지, 비행 시간이 어느 정도인지 등을 얻어올 수 있습니다. 저는 비행 거리가 10000km 이상인 항공편만 뽑아오고 싶습니다. 비행 거리 (km)..
django에서 m2m (many to many field)를 쓰는 경우는 흔합니다. 이 필드는 mapping table을 생성하는데요. 이 mapping table에서 filter를 어떻게 거는지 간단하게 알아봅시다. 먼저, post에 좋아요 기능을 추가하려고 합니다. 유저 1명은 여러 포스트에 좋아요를 누를 수 있고, 포스트 하나도 유저 여러 명이서 좋아요를 받을 수 있습니다. 즉, post와 user는 다대다 관계인 셈입니다. 그래서, Post model은 아래와 같이 바꿀 수 있습니다. 보시면, like가 걸려 있는데, Post와 User간 Many to Many로 연결됨을 의미합니다. 실제로, migrate를 하고 나서, 몇 개의 좋아요 데이터를 추가했습니다. 새로 생성된 테이블을 보면 아래와 ..
특정 조건을 만족하는 레코드에 대해서 집계되게 하게 하는 것은 어렵지 않습니다. 그런데, 이런 경우가 있을 수 있습니다. 1월에 카데고리별로 몇 개나 쓰여졌고, 2월에는 몇 개나 쓰여졌고, 이러한 것들을 집계해야 할 경우가 있을 텐데요. 사실 case when 등으로 처리를 할 수 있겠습니다만 postgres에서는.. aggregate filter를 처음 알게 되어서 여기에 쓰고자 합니다. 먼저, 포스트의 데이터들입니다. 포스트에는 점수와 post 내용, id와 category가 있습니다. 이들 중 post에 bye가 포함되는 것들을 모두 얻어와 봅시다. 1번 카데고리에 1개, 3번 카데고리에 2개가 있습니다. 그리고 1번 카데고리의 총 점수는 18점, 3번 카데고리는 87점입니다. 다음에 gahui가 ..
안녕하세요. 이번 시간에는 java stream의 filter에 대해 알아봅시다. 먼저, filter는 stream을 리턴하는데요. predicate에 match가 되는 원소들로 이루어진 무언가를 리턴합니다. 조건에 매치되는 필터를 적용한 무언가를 리턴한다. 정도로 생각하시면 편할 듯 싶어요. 예제를 하나씩 보겠습니다. 7번째 줄부터 11번째 줄까지 봅시다. 보시면, mapToInt로 들어오는 stream으로부터, valueOf를 적용하는 Intstream을 리턴해요. 다음에, 필터를 태우는데요. k -> k%2 != 0인 걸로 보아서는 홀수만 뽑아오겠다는 필터임을 알 수 있어요. 그리고 boxed는 박싱을 하는 stream을 리턴해요. 최종 연산으로 toList를 호출하는데요. 결과를 List로 뽑아옵..
최근댓글