django drf를 쓰다 보면, IsAuthenticatedOrReadOnly와 IsAuthenticated를 많이 보게 됩니다. 아주 많이 쓸 텐데요. 사용 용례를 통해서 차이점을 알아보도록 하겠습니다. 먼저 permissions.py를 보시면, SAFE_METHODS가 정의되어 있어요. 'GET', 'HEAD', 'OPTINS' 라고 정의되어 있습니다. 특히 get은 read-only request로 잘 알려진 메서드입니다. IsAuthenticatedOrReadOnly는 request.method가 get, options, head 이거나, 혹은 유저가 인증 되어 있는 상태이면 참을 리턴합니다. 즉, 익명의 유저에 대해서는 get, options, head만 허용합니다. 다음에 IsAuthenti..
웹/장고 검색 결과
django에서 auto_now와 auto_now_add 옵션은 어떤 차이가 있을까요? 간단하게 알아보도록 하겠습니다. 먼저 Post는 다음과 같습니다. created는 auto_now_add를 붙였습니다. 그리고 modified는 auto_now를 붙였습니다. 이 둘만 봐도 어디에 어떻게 써야 할 지 눈치챌 수 있습니다. auto_now_add는 추가 될 때 현재 시각으로 들어가고, auto_now는 수정될 때 업데이트 시각을 위한 용도로 쓰겠구나. 여기서 한 단계 더 나아가 봅시다. 먼저, 3951번 포스트를 보겠습니다. 저는 / 요청을 날리면, 3951번 포스트를 업데이트 할 거에요. index 함수는 매우 간단합니다. / 요청이 들어왔을 때, 3951번 포스트의 content를 b로 업데이트 해 ..
admin에서 선택된 포스트들을 추천 포스트로 올리고 싶습니다. 어떻게 하면 좋을까요? 물론, 일일히 포스트의 상세 정보에 들어가서 해도 되겠지만, 여간 귀찮은 것이 아닙니다. 그럴 때 할 수 있는 것은, admin의 action을 이용하는 것입니다. 먼저, 모델 Post는 위와 같습니다. user는 FK로 정의되어 있습니다. 다음에 content, created, view, recommend_flag가 정의되어 있습니다. 다음에 Action이라 하면, Action 밑에 뜨는 것들을 말하는데요. 예를 들자면, Delete selected posts라고 하면, 선택된 포스트들을 모두 삭제합니다. 이를 한 번에 처리할 수 있는 것이 action인 셈입니다. 문제에서의 요구 사항은 선택된 post들의 reco..
안녕하세요. 이번 시간에는 django에서 custom command를 만드는 방법을 알아봅시다. 사실, python manage.py runserver라던지, 혹은 createsuperuser 등이 있어요. 이들은 command로 실행이 되는데요. package를 간단하게 보면서 어떻게 구현을 했는지만 빠르게 훑어볼 거에요. 그리고, 제 command를 간단하게 만들어 볼 거에요. django.auth의 management.command에 있는 changepassword.py를 보겠습니다. 이것을 보면, add_arguments와 handle이 있네요. handle의 경우에는 command가 실행되었을 때의 로직을 구현합니다. 그리고 add_arguments는 인자를 추가합니다. 이 정도만 봐도 크게 ..
안녕하세요. 장고의 resolve 함수는 URL에 매핑되는 view에 대한 정보를 얻어올 때 쓰일법 해요. 예를 들어, url name은 무엇이고, view name이 무엇인지 등등입니다. ResolverMatch object를 리턴하는데요. 이것이 무엇인지도 간단하게 디버그 모드를 통해서 보겠습니다. 먼저, 대략적인 프로젝트 구조에요. djangoex 패키지에는 urls.py가 있어요. 그리고, app 패키지에는 views.py가 있어요. 이 두 개의 파일만 건드릴 거에요. 먼저, urls.py를 볼게요. path들이 있는데요. "/"에 대한 view 함수는 views.index로 잡혀있고, name은 "index"인 것을 알 수 있어요. 이 상황을 그림으로 그려 봅시다. 즉, path가 "/"인 경우..
최근댓글