장고에서, 조건을 만족하는 오브젝트가 있으면 해당 오브젝트를 리턴하고, 없으면 404 처리를 하고 싶습니다. 이 때 저는 보통 어떻게 했냐면, exist 하지 않으면 404 response를 날리고, 아니면, 오브젝트르 가져와서 리턴했습니다. 그런데, 이를 좀 더 간단하게 처리해 줄 수 있는 함수가 있는데요. get_object_or_404입니다. 먼저 post 모델은 위와 같습니다. 작성자인 user는 User를 참조하는 Foreign key를 들고 있습니다. 이 User는 장고에서 기본으로 제공되는 Auth의 User를 의미합니다. 다음에 post는 포스트 내용을 의미해요. 뭔가 네이밍이 이상한 것 같지만 넘어갑시다. Post 관련 admin View에서, 포스트를 쓴 유저 이름을 얻어오게 바꾸었습니..
전체 글 검색 결과
django를 처음 접했을 때, 헷갈리던 것이 null=True 옵션과 blank=True 옵션이였습니다. 이 둘에 대해 간단하게 알아보겠습니다. 먼저, null=True 값을 주고 migration을 해 보겠습니다. myapp_post 테이블을 생성하는 쿼리를 봅시다. 그러면 post에 NULL이 붙어 있는 것을 볼 수 있는데요. 이는 널 값을 허용한다는 의미입니다. 저는 sqlite를 써서 쿼리가 요래 생성되었습니다. 그냥 아무런 값도 추가하지 않았더니 NULL이 들어간 것을 볼 수 있습니다. NULL 값을 추가한 다음에 장고 어드민에서 해당 포스트를 수정해 보겠습니다. 빈 값으로 냅뒀더니, This field is required 라고 뜹니다. 이는 null=True 옵션이 Form에서 빈 값을 허..
안녕하세요. 이번 시간에는 파이썬 operator의 itemgetter 함수에 대해 알아봅시다. 먼저, itemgetter 함수는, callable object를 리턴한다고 되어 있어요. 그래서, f = itemgetter(2)를 하면, f(r)을 불렀을 때 r[2]가 리턴된다고 되어 있습니다. 이게 무슨 소리인지 문서에 나와 있는 코드를 보겠습니다. 대충 요런 함수인데요. 일단은 뭔가 리턴하는데 g를 리턴해 버립니다. 그리고 이 g는 obj를 받습니다. 이로 미루어 보았을 때, 함수 itemgetter는 호출 함수인 caller를 리턴하고, 이 caller가 실제로 iterable한 놈을 넘겨받아서 x번째 원소를 리턴하는 일을 수행한다고 봐도 되겠군요. 그러면 이걸 어떻게 바깥에서 쓸까요? 먼저, 2번..
요새 이모지를 많이 씁니다. 여기서 질문. 이모지가 있는지 어떻게 검사해야 할까요? 사실 저는 정규 표현식만 있는 줄 알았습니다만, emoji 관련한 패키지가 있어서 그것을 이용해 보기로 했습니다. 먼저 emoji 패키지를 깔아주세요. emoji 1.7.0 기준으로, core의 replace_emoji 한 줄이면 이모지가 제거됩니다. 첫 번째 인자는 string, 2번째 인자는 이모지가 나오면 어떤 것으로 replace를 할 것인가입니다. 저는 빈 문자열로 두었기 때문에, 이모지가 제거됨을 알 수 있어요. 결과를 보면 아래와 같습니다. cho 가가 나오네요. 정규 표현식을 쓰면 몇 줄이 될 것이 단 한 줄에 끝나버리니, 생각보다 괜찮지 않나 싶습니다. 그리고, 내부를 보면, 정규표현식이 아니라, 이모지 ..
우분투에서 /etc/localtime에는, 서버의 타임존에 대한 정보가 들어 있습니다. 보니까, Asia/Seoul로 설정되어 있는데요. 이는, 서버의 타임존이 Seoul이라는 의미입니다. 그러면, 이러한 정보들은 어디에 어떻게 저장되는 것일까요? /usr/share/zoneinfo 폴더로 들어가 보겠습니다. 먼저, zoneinfo 폴더 내에 있는 Asia/Seoul로 들어가 보겠습니다. 그러면 뭔가 알 수 없는 정보들이 나오고, KST-9가 나옵니다. 이는 한국 표준시를 의미합니다. 도쿄에 대한 정보를 보니, 이번에는 JST-9라고 되어 있습니다. 이것만 봐서는 어느 표준시를 따르는지밖에 모르겠네요. zdump 명령어는 timezone 파일에 대해서 상세 정보를 출력해 주는 명령어입니다. 사실, 사람이..
최근댓글