Django ckeditor setting

tein·2023년 9월 20일

Django

목록 보기
2/3

views.py

# 맨 위에 추가
from .forms import BlogForm

# write 함수 수정
def write(request):
    form = BlogForm()
    return render(request, 'write.html', {'form': form})

project level urls.py

# 아래 두줄 추가
from django.conf.urls.static import static
from . import settings

urlpatterns = [
    ...
    # 아래 내용 추가
    path('ckeditor/', include('ckeditor_uploader.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

models.py

# 추가
from ckeditor_uploader.fields import RichTextUploadingField

class Blog(models.Model):
    # 변경
    content = RichTextUploadingField(blank=True,null=True)

forms.py > app level에서 생성

from django import forms
from .models import Blog

class BlogForm(forms.ModelForm):
    class Meta:
        model = Blog
        fields = ['title' , 'content']
  • 제목, 내용 입력할 폼 설정

settings.py

INSTALLED_APPS = [
  # 추가
  'ckeditor',
  'ckeditor_uploader',
]

# 맨 아래에 추가
CKEDITOR_UPLOAD_PATH = 'uploads/'
CKEDITOR_IMAGE_BACKEND = "pillow" 
CKEDITOR_UPLOAD_PATH = 'uploads/'
MEDIA_URL = '/media/'
MEDIA_ROOT = 'media/'
CKEDITOR_CONFIGS={
  'default': {
    'toolbar': 'Full',
    'height': 400,
    'width': 500,
  },
}
  • 에디터 크기, 업로드한 미디어 파일(이미지 등) 저장할 위치 세팅

template

<form method="POST">
		{% csrf_token %}
		{{ form.media }}    
		{{ form.as_p }}
	<button type="submit">글 작성</button>
</form>
  • {{ form.media }} 를 꼭 입력해줘야 에디터 버튼들이 생긴다.
profile
내 시행착오 모음집

0개의 댓글