django admin에서 search_fields에 대해 간단하게 알아보겠습니다. 저는 db를 sqlite를 사용하였습니다. search_fields는 search box를 enable 시키게 되는데요. 7번째 줄에 보면 "content"가 적혀있습니다. 이는, "content"에 대해 무언가를 검색하는 검색창을 활성화 시킵니다. 앞에 =이라던지 ^가 붙지 않았기 때문에 icontains 옵션으로 동작하게 됩니다. chokw를 검색해 보겠습니다. 그랬더니, chokw가 포함된 포스트가 검색됩니다. 중요한 것은 content가 "chokw"였던 것 뿐만이 아니라, "my name is chokw"인 것도 같이 결과에 나왔다는 것입니다. "is"를 검색해 봅시다. 그러면 "my name is chokw"인..
Django 검색 결과
수많은 데이터를 한꺼번에 추가하려면 어떻게 해야 할까요? 특히 queryset의 성능을 실험할 때 거대한 데이터를 넣어야 할 일이 의외로 있는데요. 매 루프마다 create를 호출하면 상당히 느릴 겁니다. 이 때, 쓸 수 있는 것은 bulk_create입니다. 말 그대로, 일정 묶음 단위로 추가를 할 수 있습니다. 자세한 것은 문서를 보시면 되겠습니다. 이 글에서는 간단하게 bulk_create가 무엇인지 정도만 짚고 넘어갑니다. 예제의 모델들은 아래와 같이 정의되어 있습니다. 먼저 Profile의 user는 django의 기본 모델인 User의 fk입니다. 다음에 blocked는 block 유저를 관리하기 위한 m2m field입니다. 실제로 postgres 디비에는 block 유저를 관리하는 mapp..
장고에서 유저의 비밀번호를 어떻게 설정해야 할까요? 비밀번호는 평문으로 저장되면 안 됩니다. 그렇기 때문에, set_password 라는 별도의 함수를 제공합니다. 이 글에서는 암호화 방식에 대한 상세한 설명을 다루지 않습니다. 먼저 사용법부터 봅시다. auth.models에 붙어 있는 User를 쓰는 경우, 비밀번호를 셋팅할 User 계정을 불러옵니다. 저는 "admin"이라는 유저 이름을 가진 유저를 filter와 get을 이용해서 불러왔습니다. 다음에 set_password 함수로 새롭게 설정할 raw_password를 넣습니다. 다음에, 반영하기 위해, user.save()를 해서 실제 데이터 베이스에 넣습니다. 사용법은 어렵지 않습니다. 이제, 어떤 식으로 동작하는지 간단하게만 보겠습니다. 메타..
이번 시간에는 django의 Q object로 복잡한 filter를 조금 깔끔하게 작성하는 방법을 알아보겠습니다. 물론, 문서에 예제가 매우 잘 나와 있긴 합니다. 먼저, 데이터는 요래 있습니다. 작성자가 "alpha"인 사람은 "beta"라는 내용의 포스트를 썼고, 작성자가 "admin"인 유저는 "alpha" 라는 내용의 포스트를 썼습니다. 여기까지 보면 별로 어려울 게 없어 보입니다. 자. 그런데, 어떠한 정보를 얻어올 때, 쿼리 파라미터가 여러개 들어오는 것은 보통입니다. 예를 들어 네이버에 "코딩테스트" 를 검색하고 view 탭만 봐도 query parameter가 상당히 많음을 볼 수 있어요. 이런 것을 어떻게 깔끔하게 처리할까요? 문제 상황이 이해가 가셨으리라 생각됩니다. 저는 post의 유..
안녕하세요. 이번 시간에는 django order_by에 대해 알아보겠습니다. foreign key와 annotate와 섞어서 써야 하는 예제는 다음에 보도록 하고요. 간단한 예제 위주로 굴려보겠습니다. 먼저 post에는 아래와 같은 데이터가 들어 있어요. 작성자 user는 User 테이블을 참조하는 foreign key입니다. 먼저, post 사전순으로 올려봅시다. 알파벳 소문자와 공백으로만 이루어져 있고, 아스키 사전순으로 정렬되게끔 세팅했다고 하겠습니다. 그러면 order_by에 "post"를 적어주면 됩니다. 저는 Post에서 "post"의 내용을 기준으로 사전순 오름차순으로 정렬할 것이기 때문입니다. asc입니다. 그러면, 4개의 포스트가 사전순으로 정렬됨을 볼 수 있어요. 반대로 내림차순은 어..
최근댓글