두숟갈 스터디 - 13

무엇을 공부했나요?

이번 시간에는 Two scoops of Django 18장 django core 교체하기, 19장 django admin, 20장 django UserModel을 함께 살펴보았습니다. 동현님께서 세 장의 내용을 요약하셨고, 제가 심화(라고 쓰고 조금 더 알아보기 라고 읽습니다.)를 준비했습니다.

남홍님이 들고 오신 닭머리 카메라가 모두의 모습을 담아주었네요

18장 Django core 교체하기

짧은 대답: 할 이유가 없다.
긴 대답: 이 책에서 이야기하는 core module의 장점을 포기해도 괜찮다면 시도해 볼 수 있다.

1. Franken Django를 만들고 싶은 유혹

유행에 민감한 개발자들은 django component를 새로운 것으로 교체하길 원한다. 하지만 단순히 유행을 좇기보다 설득력 있는 이유가 존재하는지 생각해보아야 한다.

2. Non-Relational Databases vs. Relational Databases

19장 Django Admin

1. End User를 위한 것은 아니다.

2. 커스터마이징 하는 것보다 새로운 View를 만드는 것이 더 편할 수도 있다.

3. Django admin page에서는 기본적으로 객체의 이름을 문자열로 표현하여 보여준다.

__str__() 메서드를 사용하여 읽기 쉽게 변경해주자

4. Django ModelAdmin에 호출 가능한 메서드나 함수를 추가할 수 있다.

5. Django admin에는 Lock을 거는 기능이 없기에 여러 사용자가 이용하는 환경에서는 주의를 기울여야 한다.

6. django.contrib.admindocs 패키지를 통해 문서화 할 수 있다.

7. Custom Skin 사용하기

8. Django admin은 관리자의 권한이 막대하기 때문에 보안을 철저히 하는 것이 좋다.

20장 Django UserModel

1. get_user_model()로 user model 찾기

from django.contrib.auth import get_user_model
get_user_model()

2. Django 1.11에서의 Custom User fields

심화

19장 Django admin에 대한 내용을 다루었습니다. 심화학습이라고 하기에는 다소 민망하지만 제가 Django admin을 다루면서 마주했던 내용을 정리하며 함께 이야기를 나누었습니다.

13-2

1. 어드민을 등록할 때 어떤 일들이 일어날까?

매번 무심코 지나쳤던 admin.site.register()의 내부를 살펴보았습니다.

2. Action 정의하기

3. Model Admin의 queryset을 변경하여 admin page에 노출할 데이터 필터링하기

4. inlines 속성으로 상위모델과 같은 페이지에서 편집하기

5. Form 변경하기

6. 추가/수정/삭제의 권한 변경

7. 하나의 모델에 대해 두 개의 어드민 페이지 만들기

어땠나요?

이번에는 초초보인 제가 심화를 맡아 진행하였습니다. 처음에는 ‘내가 심화를 준비할 수 있을까?’, ‘이런 것들이 다른 분들에게도 도움이 될까?’ 와 같은 고민을 하였습니다. 하지만 이내 밀도 높은 심화 내용을 준비하지 못하더라도, 제가 이해하고 있는 것들을 공유하는 시간도 의미가 있을 것이라는 생각을 하였습니다.

이번 스터디에서는 간단한 예제 코드에서도 ‘왜 이렇게 사용하나요?’라는 질문을 받은 순간이 가장 좋았습니다. 제가 예제를 작성할 때, 수상한 코드에 의문을 갖지 않았다는 사실을 알게 되었기 때문입니다.
코드를 작성하거나 공부를 할 때 모든 것을 의심하자고 생각하지만 그 순간이 지나고 나서야 수상한 것들을 발견하는 경우가 많습니다. 역시 코드를 바라보는 눈은 많을수록 좋다는 생각이 들었습니다.

책의 목차를 다시 훑어보니 앞으로 다룰 내용은 아직 저에게 낯설어 보이네요. 그만큼 앞으로의 스터디도 기대가 됩니다!