backend/django 80

django: reversed forloop in template

장고 템플릿에서 if와 함께 가장 많이 사용하는 템플릿태그는 for이다. 그냥 단순히 객체를 순회하는 것 말고도 많은 기능들이 있는데, 이번에는 파이썬에서 enumerate와 비슷한 기능을 해주는 forloop를 소개한다.for문 안에서 forloop.counter를 사용하면 for문이 순회하는 순서를 1부터 시작해서 사용할 수 있다. 0부터 사용하려면 forloop.counter0을 사용하면 된다.{% for post in posts %} {{ forloop.counter }}번째 글: {{ post.id }} - {{ post.name }} {% endfor %} 만약 이 counter를 거꾸로 사용하고 싶다면? forloop.revcounter를 사용하면 된다!{% for post in posts ..

backend/django 2018.02.19

django suit v.2.0 후기 및 팁

이번 프로젝트에 django suit를 사용하면서, 2.0을 처음으로 사용해 보기로 하였다. 아직 공식적으로 release 되지는 않았지만, 이미 마무리 단계에 들어섰고 프로덕션 레벨에 사용할 정도의 수준은 되는 것 같아서 가벼운 admin에서 사용해 보기로 하였다.2.0의 가장 큰 차이점은 모던화된 ui와 무려 모바일 최적화(!)이다. 모바일에서 장고 어드민을 사용할 수 있다니, 정말 어마어마하다.우선 suit 2.0의 간략한 설치법을 정리하고 사용 중 발견한 팁들을 따로 공유하겠다.무엇보다 아직 2.0 공식 문서가 없기 때문에 demo app을 까보면서 하나하나 적용해 가야한다는 점이 조금 아쉽지만 이럴 때가 아니면 언제 suit를 까볼까 하는 생각에 아직은 즐겁게 2.0을 사용해보고 있다.설치법역시..

backend/django 2018.02.12

Django: DetailView, UpdateView pk나 slug 없이 사용하기

CBV를 주로 사용하면서, 참 잘 만들었다고 감탄하고 있다.DetailView, UpdateView 등 pk나 slug가 기본으로 필요한 CBV를 사용할 때, pk나 slug 없이 특정 object를 전달하는 방법을 공유한다.get_object에 직접 해당 object를 넘겨주기만 하면 url에서 따로 pk, slug 사용 없이 깔끔하게 DetailView 등을 사용 가능하다. user 기반으로 한 페이지 (user mypage 등)을 만들 때 유용하게 사용할 수 있다.다음은 마이페이지에서 프로필 사진 업데이트를 할 수 있는 MypageView의 예.class MypageView(LoginRequiredMixin, UpdateView): model = User fields = ['profile_image..

backend/django 2018.02.06