장고:썸머노트 설치: 두 판 사이의 차이
둘러보기로 이동
검색으로 이동
(→과정) |
(→과정) |
||
72번째 줄: | 72번째 줄: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
근데, 이 섬머노트는 반응형이 아니다; 반영할 수 있는 방법이 있을까? |
2020년 11월 12일 (목) 20:55 판
장고! 웹 프레임워크! 틀:장고
개요
일반적인 textarea에서 표현할 수 있는 방식은 굉장히 적다. 적어도 위키처럼 목차관리를 해준다든가, 링크를 만든다든가 정도는 되야 하지 않을까. 많이 사용되는 에디터인 섬머노트를 장고에 설치해본다.
이미 장고앱으로 개발되어 있어 쉽게 설치가 가능하다.
과정
과정 | 설명 |
---|---|
pip install django-summernote
|
장고에서 사용하는 썸머노트를 설치. |
settings.py의 APP 등록 | 'django_summernote', 추가
|
settings.py 설정 | 이미지 업로드를 위해
추가 |
settings.py 설정 | 클릭재킹 방지설정 변경.
'django.middleware.clickjacking.XFrameOptionsMiddleware'라는 미들웨어가 클릭재킹을 방지해주는데, 기본설정이 DENY다. 때문에 아래 옵션을 주어 설정을 변경해준다.#클릭재킹 방지설정 변경
X_FRAME_OPTIONS = 'SAMEORIGIN'
|
urls.py 변경 | 루트 urls.py에 다음의 코드를 추가한다.
|
모델 만들기 | 기존에 사용하던 모델이 있다면 굳이 만들 필요는 없겠다.from django.db import models
class Post(models.Model):
title = models.CharField(max_length=10)
content = models.TextField()
def __str__(self):
return self.title
|
폼 만들기 | 기존에 사용하던 폼이 있다면 내용을 추가해주면 된다.from django import forms
from .models import Post
from django_summernote.widgets import SummernoteWidget
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ['title', 'content']
widgets = {'content': SummernoteWidget(),}
혹시나 {{ |
탬플릿 변경 | 썸머노트로 입력한 내용은 html코드로 나온다. 탬플릿 필터 |safe 를 사용하여 detail.html의 콘텐츠 부분을 다음과 같이 수정한다.<div class="card-text" style="white-space: pre-line;">{{ question.content| safe }}</div>
|
근데, 이 섬머노트는 반응형이 아니다; 반영할 수 있는 방법이 있을까?