해리의 데브로그

Django 18 - 관계 설정(1) / 유저정보 추가 및 권한 설정

|

Django 17 - 미디어 파일 관리 및 업로드 구현

|

2019년 6월 2주차 TIL

|

2019-06-03

  • Django 관련 마크다운을 작성하여 깃허브 블로그에 올리는 작업이 어지간히 쉬운일이 아니다. 큰 애를 먹고 있는 부분이, Liquid tag error로 인해 마크다운 업로드 build에 실패하는 부분인데, Django에서 매우 많이 활용하는 진자 템플릿이나, 템플릿 변수에서 사용하는 {{ }} 이나 {% %} 등의 코드에서 많은 에러가 발생하여 깃허브 블로그 build에 어려움을 겪고 있다.
  • 문제가 될만할 부분은 raw 와 endraw로 묶어서 최대한 추려냈음에도 몇 번의 시행착오를 처음에 겪는건 어쩔 수 없는듯 하다. 해당 이슈로 에러가 발생하는 case들을 최대한 모아서 따로 정리를 해봐야겠다.
The page build failed for the `master` branch with the following error:

The tag `csrf_token` on line 69 in `_posts/Django/2019-04-27-Django06_CRUD3.md` is not a recognized Liquid tag. For more information, see https://help.github.com/en/articles/page-build-failed-unknown-tag-error.

For information on troubleshooting Jekyll see:

  https://help.github.com/articles/troubleshooting-jekyll-builds

If you have any questions you can contact us by replying to this email.

2019-06-04

  • Django 미디어 파일 업로드 및 관리에 대한 내용을 마크다운으로 정리해보았다. 미디어 파일을 다룰 때는 특히나 부수적인 코드작성이 많이 필요한데, 여러번 반복을 해서 코드를 짜봐도 손에 100% 익히는덴 더 많은 연습이 필요 할 듯 하다.
    • form 태그 속성에 enctype을 추가 설정 / setttings.py 내 이미지 업로드 경로 설정 / urls.py 내 settings.py에서 설정한 미디어 경로 지정하기
  • 시간이 날 때 staticfile 관리에 대한 Django 공식문서를 찬찬히 읽어보자.

2019-06-05

  • Bixby Capsule 디자인 및 Endpoint, 외부서버 연동하기 강의 공부 및 캡슐 실습을 하였음. 좀 더 세부적인 강의가 빨리 업로드되었으면 되었으면 좋겠다.

2019-06-06

  • Django의 유저 관련 모델 관계설정 및 유저 정보를 추가하는 내용을 복습해보았다. model에 user 필드는 장고에 내장되어잇는 user 모델을 외래키를 통해 관계설정을 하는데, 해당 필드에 유저 정보를 실제 view에서 입력할때는 모델폼을 바로 DB에 저장하지 않고 commit=False 를 이용한 후, 래핑되어있는 모델폼 인스턴스를 다시 모델 인스턴스에 저장시켜, user 정보를 입력하였다.
  • Django 수업에서 들었던 내용을 다시 복기하면서 블로그에 올리기 위한 최종본으로 마크다운을 작성 한 후, 연습 프로젝트를 새로 작성하여 관련 부분을 스스로 코드로 작성하며 복습을 하고 있는데, 어떠한 자료도 보지 않고 혼자서 코드를 짜다보면 어처구니 없는 부분에서 가끔 실수가 나오고 있다.
  • 오늘은 models.py 내 user 필드에 대한 코드를 작성할 때, 끝부분에 ,를 실수로 넣는 바람에, 유저정보가 뜨지 않아 1시간 가까이 어디가 틀렸는지 헤메고 말았다. 좀 더 잔실수를 줄이며 집중해서 코드를 작성할 수 있도록 해야겠다.

2019-06-07

댓글 기능 구현 및 1:N 관계 설정 복습을 진행하였음.

  • Comment(N)와 Post(1)을 연결시킬 때는 외래키를 입력하는 필드(comment.post_id)가 생성됨.
  • 유저 모델과 마찬가지로 wrapping 되어있는 정보를 commit=False 를 통해 벗겨 낸 뒤, 필드의 정보를 추가로 입력 가능
  • @login_required와 마찬가지로 HTTP methods에 대한 데코레이터 설정을 활용하여 HTTP methods를 제한적으로 허용가능함. 허나 decorators가 저장되어있는 경로는 미세하게 다름
    • from django.views.decorators.http import require_POST
    • from django.contrib.auth.decorators import login_required
  • 진자템플릿 문법에서는 1에서 N으로 접근할 경우, post.comment.set.all()이 아니라 post.comment.set 으로 코드를 작성해야함 ( () 뺄 것.)

Django 16 - 사용자 권한 관리

|

Django 15 - 사용자 인증(회원가입/로그인/로그아웃)

|