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>