WYSIWIG란?
- What You See Is What You Get의 약어
- 웹 브라우저에서 사용할 수 있는 HTML 편집기
- 일반적으로 웹에서 긴 내용의 텍스트를 입력받을 때는 textareat태그를 사용하나,
- 블로그, 게시판 등에서는 주로 HTML을 사용한 편집기를 사용한다.
- ckeditor, tinymce 등 JS를 이용한 플러그인 사용
WYSIWIG 적용 순서
1. django-ckeditor 모듈 다운받아 설치
$ pip install django-ckeditor
2. INSTALLED_APPS에 ckeditor 추가
- 경로 : 프로젝트 > settings.py
1 2 3 4
| INTALLED_APPS = [ ... 'ckeditor', ]
|
3. 모델에 RichTextField 추가
- 경로 : 앱 > models.py
1 2 3 4
| from django.db import models from ckeditor.fields import RichTextField class Post(models.Model): content = RichTextField()
|
4. 모델 변경사항 있으므로, 마이그레이션 진행
$ python manage.py makemigrations [앱이름]
$ python manage.py migrate [앱이름]
5. 관리자페이지에서 해당 필드가 에디터 형태로 나타나는지 확인
6. 프론트 페이지에서도 에디터를 나타나게 하도록 적절한 뷰 만들고 폼 출력
- 경로 : 앱 > templates > 앱 > html 파일
- 폼 출력할 때 필수로 {{form.media}} 사용
- 관리자 개발도구에서 폼 안쪽 추가된 스크립트 확인 가능
1 2 3 4 5 6
| <form action="" method="post"> {% csrf_token %} {{form.media}} {{form.as_p}} <input type="submit" value="Write"> </form>
|
7. (선택) 추후 S3 연동하기 위한 설정 필요
- 경로 : 프로젝트 > settings.py
AWS_QUERYSTRING_AUTH = False