장고 - CKEditor 이미지 파일 업로더 설정

1. django-ckeditor 설치

$ pip install django-ckeditor

2. INSTALLED_APPS 항목에 ckeditor와 ckeditor_uploader 추가

- 경로 : 프로젝트 > settings.py
1
2
3
4
5
INSTALLED_APPS = [
...
'ckeditor',
'ckeditor_uploader',
]

3. 설정파일에 MEDIA_ROOT 지정 (S3 사용할 경우 불필요)

- 경로 : 프로젝트 > settings.py
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

4. 만약 media_root 하위 폴더에 에디터용 전용 경로를 설정하고 싶다면,

- 경로 : 프로젝트 > settings.py
    CKEDITOR_UPLOAD_PATH = 'wysiwyg/'

5. 에디터를 사용하는 유저별로 자신이 올린 파일들만 사용할 수 있게 하려면,

- 경로 : 프로젝트 > settings.py
    CKEDITOR_RESTRICT_BY_USER = True

6. 에디터를 설정할 필드를 모델에 생성

- 경로 : 앱 > models.py
1
2
3
4
from ckeditor_uploader.fields import RichTextUploadingField

class Post(models.Model):
content = RichTextUploadingField()

7. 모델에 변경 사항 생겼으므로 마이그레이션 진행

$ python manage.py makemigrations [앱이름]
$ python manage.py migrate [앱이름]

8. 업로딩 처리를 위한 필수 뷰 등록

- 경로 : 프로젝트 > urls.py
1
2
3
4
urlpatterns = [
...
path('ckeditor/', include('ckeditor_uploader.urls')),
]