전체보기

    25. 폼으로 댓글 기능 구현(Comment 모델, 상세 페이지에 댓글 기능 반영)

    25. 폼으로 댓글 기능 구현(Comment 모델, 상세 페이지에 댓글 기능 반영)

    ● Comment 모델 만들기 models.py에 Comment 모델 추가 후 migration post는 어느 포스트에 작성한 댓글인지를 저장하는 변수다. author은 누가, content는 댓글 내용을 저장하고, created_at은 댓글 작성일시, modified_at은 수정일시를 저장한다. 여러 댓글들이 작성될 수 있도록 post 필드는 ForeignKey로 설정한다. 그리고 아래쪽에는 author와 content를 출력하게 해주는 __str__() 함수를 만든다. DB에 반영하기 위해 migration 한다. 댓글 작성 페이지 확인 blog/admin.py를 수정하여 관리자 페이지에서 댓글을 관리 할 수 있도록 한다. ● 포스트 상세 페이지에 댓글 기능 반영 댓글 기능을 구현했으니 실제로 페이..

    24. 외부 라이브러리를 블로그에 활용(회원가입 & 로그인 기능 구현)

    24. 외부 라이브러리를 블로그에 활용(회원가입 & 로그인 기능 구현)

    django-allauth 설치 allauth는 구글, 카카오, 페이스북으로 로그인하는 기능 구현을 쉽게 해주는 라이브러리다. settings.py 파일 수정 새로 설치한 라이브러리를 적용하기 위해 INSTALLED_APP에 추가한다. 아래쪽은 인증관련 코드를 입력한다. django_blog_project/urls.py 파일 수정 allauth가 사용할 수 있는 URL 경로를 추가한다. DB에 반영 django-allauth 적용 구글 개발자 콘솔에서 새 프로젝트와 클라이언트 만들기 구글에 개발자 콘솔(console.developers.google.com)에서 웹 사이트를 등록해야 구글 계정으로 등록할 수 있게 해준다. 구글 계정을 가진 모든 이들이 사용할 수 있도록 User Type을 외부로 설정한다...

    ImportError: cannot import name 'url' from 'django.conf.urls'

    ImportError: cannot import name 'url' from 'django.conf.urls'

    ● 이 오류는 무엇인가? 이것은 django-markdownx 라이브러리를 사용하면서 django version이 4.0 이상인 경우 생기는 오류로 django 4.0 부터 django.conf.urls.url() 함수가 없어지면서 생기는 오류이다. ● 해결책은? 해결책은 크게 2가지가 있는데 하나는 stackoverflow에서 발견한 것이고 또 다른 하나는 그냥 비슷한 기능을 제공하는 다른 라이브러리를 사용하는 것이다. 1. Django 버전을 3.0 이하로 낮추기 2. stackoverflow에서 제시한 해결책 https://stackoverflow.com/questions/70319606/importerror-cannot-import-name-url-from-django-conf-urls-after..

    23. 외부 라이브러리를 블로그에 활용 (폼 모양 꾸미기, 마크다운 적용)

    23. 외부 라이브러리를 블로그에 활용 (폼 모양 꾸미기, 마크다운 적용)

    ● 폼 모양 꾸미기 지금까지 제작된 블로그를 보면 영 엉성하다. 이전글에서 보았듯이 포스트 등록, 수정 페이지가 왼쪽으로 치우친 느낌이 있으니 썩 깔끔한 모습이 아니다. 보기 좋게 바꾸어 본다. Django-crispy-forms 적용 django-crispy-forms 설치 모듈을 설치 하였다고 해서 바로 적용되는 것이 아니기에 django_blog_project/settings.py 파일의 INSTALLED_APPS에 crispy_form을 등록하고 아래쪽에는 crispy_form의 스타일을 bootstrap4로 지정한다. post_form.html을 수정하여 crispy-forms 적용 crispy_forms를 적용하기 위해 {% load crispy_forms_tags %}를 적는다. crispy..