Django + Summernote

Summernote 는 입력 폼에서 사용할 수 있는 에디터 라이브러리이다.
django에서 이 라이브러리를 사용하면 손쉽게 텍스트 에디터를 사용 할 수 있다.

일단 pip을 통해서 django-summernote를 설치해준다
    #> pip install django-summernote

그리고 settings 파일을 설정해준다.
# settings/common.py
INSTALLED_APP += ['django_summernote']
MEDIA_URL = '/media/'
MEDIA_ROOT = join(BASE_DIR, 'media')
media파일을 지정해 줘야 summernote 에디터를 사용해서 입력 받는 파일들을 처리 할 수 있다.
( 이미지를 사용하려면 pillow도 추가로 설치 해줘야 한다)

그리고 프로젝트의 urls.py도 설정 해야 할 것이 있다.
#    project/urls.py

from django.conf import settings

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
DEBUG가 True이면 개발 환경에서의 설정이고, 이 설정에서는 지정한 media  경로를 사용하겠다는 것.
(실제 배포에서는 장고 내부의 기술로 static에 접근하지 않는다)

이러면 에디터를 쓰기위한 설정은 끝났다.

# forms.py
from django_summernote.widgets import SummernoteWidget, SummernoteInplaceWidget
class SampleForm(forms.ModelForm):
    class Meta:
        model = Sample
        fields = ('foo','bar',)
        widgets = {
            'foo':SummernoteWidget(),
            'bar':SummernoteWidget(),
        }
이렇게 폼에서 에디터를 사용하게되면, 템플릿에서 폼을 사용 할 때 에디터를 손쉽게 사용 할 수 있다.

더 많은 사항들은 https://github.com/summernote/django-summernote 이 곳에서 확인 가능하다.

댓글