django에서 m2m (many to many field)를 쓰는 경우는 흔합니다. 이 필드는 mapping table을 생성하는데요. 이 mapping table에서 filter를 어떻게 거는지 간단하게 알아봅시다. 먼저, post에 좋아요 기능을 추가하려고 합니다. 유저 1명은 여러 포스트에 좋아요를 누를 수 있고, 포스트 하나도 유저 여러 명이서 좋아요를 받을 수 있습니다. 즉, post와 user는 다대다 관계인 셈입니다. 그래서, Post model은 아래와 같이 바꿀 수 있습니다. 보시면, like가 걸려 있는데, Post와 User간 Many to Many로 연결됨을 의미합니다. 실제로, migrate를 하고 나서, 몇 개의 좋아요 데이터를 추가했습니다. 새로 생성된 테이블을 보면 아래와 ..
전체 글 검색 결과
git commit을 할 때 amend 옵션이 있습니다. 이 옵션은 무엇을 하는 것일까요? 제 test 브랜치에는 modify 1.txt 2 ... 어쩌고의 commit message가 있는 커밋이 하나 있습니다. 해시는 39b1a2a8입니다. "1.txt" 라는 파일만 변경되었는데요. 4, 5가 추가되었습니다. 아차. 그런데 제가 6을 추가하는 것을 깜빡했나 보군요. 1.txt의 맨 끝에 6을 추가합니다. 그리고 Amend 옵션을 붙여서 커밋해 보겠습니다. Amend는 현재 branch의 lastest commit을 변경합니다. 덮어 씌운다고 보면 되겠습니다. Amend를 체크하고 커밋을 해 보겠습니다. 이것을 LAST'라고 하겠습니다. 커밋 메세지를 다시 수정하고, Amend commit을 눌러보겠습..
Pycharm이나 Intellij에서 윈도우 cmd에서 터미널 git bash로 바꾸고 싶습니다. 어떻게 하면 좋을까요? 먼저 View에서 Terminal을 눌러 봅시다. 그러면 이런 문구가 뜨는데요. 불편한 게 좀 있습니다. clear 같은 것이 안 되는 게 제일 큽니다. File-Settings으로 들어갑니다. 그러면 왼쪽 바에 여러 가지 셋팅들이 뜨는데요. Tools를 눌러 보겠습니다. 여기서, 우리는 Terminal을 바꿔야 하므로, 터미널로 들어가도록 하겠습니다. 그러면, Shell path가 눈에 들어오는데요. cmd.exe라고 되어 있습니다. 이는, Pycharm에서 터미널을 누르면 띄우는 shell이 cmd라는 의미입니다. 이것을 git으로 바꾸고 싶습니다. 시작 프로그램에 Git Bash..
이번 시간에는 파이썬 hasattr과 getattr에 대해 간단하게 알아봅시다. 먼저 hasattr은 객체가 "name"이라는 속성을 가지고 있는지 알아냅니다. 만약에 그렇지 않다면 False를 돌려줍니다. 이 함수는 무언가를 부른다고 되어 있는데요. getattr을 부르고, AttributeError를 catch함으로써 완료한다고 되어 있어요. getattr은 object에서 속성 "name"을 얻습니다. 만약에 없다면, default 값을 뱉어냅니다. default가 없다면 exception을 떨어트립니다. 이 두 함수가 무엇을 하는지 보셨으리라 생각합니다. 이제, 예제를 보겠습니다. 먼저 Child에는 loc과 x가 있습니다. 7번째 줄에 hasattr을 부르는데요. child라는 인스턴스에 "lo..
파이썬의 isinstance 함수에 대해 알아봅시다. isinstance(obj, class)은 obj가 class instance인지, 혹은 class의 subclass instance인지를 검사합니다. 뭔가 좀 어려워 보이는데요. 쉽게 말해 객체가 동물 instance인지, 아닌지를 검사할 때 쓰일 수 있는 함수입니다. 예를 하나 들어보겠습니다. Parent 클래스하고 Child 클래스가 있습니다. Child는 Parent를 상속받고 있습니다. 이를 그림으로 그리면 아래와 같습니다. 이제, 예제를 보겠습니다. par는 Parent 객체입니다. 그리고 child는 Child 객체입니다. 12번째 줄부터 볼까요? child가 Parent instance는 아니지만, Parent를 상속받는 Child의 i..
최근댓글