많은 온라인 시험 응시 웹사이트는 텍스트 입력에 텍스트 편집기를 사용합니다. 이미지 업로드 등 퀼 텍스트 편집기는 매우 인기가 있으며 데이터베이스에 직접 저장할 수 있는 모델 필드도 제공합니다. 따라서 데이터베이스에 데이터를 저장하기 위해 추가로 구성할 필요가 없습니다.
이 기사에서는 Django에서 텍스트 편집기 필드를 만드는 방법을 살펴봅니다.
먼저 Django 프로젝트와 앱을 생성합니다. URL 포함과 같은 몇 가지 기본 설정을 수행합니다. 앱의. 미디어 만들기 프로젝트 및 앱의 동일한 수준에 있는 폴더입니다.
settings.py에서 , 추가 -
INSTALLED_APPS = [ 'myapp.apps.MyappConfig', #django app ' django_quill' #module name] . . . . .. MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = '/media/'
django_quill 설치 패키지 -
pip install django_quill
예
n 앱의 urls.py , 다음을 추가하십시오 -
from django.urls import path from . import views urlpatterns = [ path('', views.home,name="home"), ] urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
여기서는 url 및 미디어 폴더 url에 대한 기본 보기를 설정하기만 하면 됩니다.
이제 템플릿을 만드세요. 앱 디렉토리에 폴더를 만들고 home.html을 만듭니다. 그 안에 파일. home.html에 다음 줄을 추가합니다. -
<!DOCTYPE html> <html> <head> {{ form.media }} {% include 'django_quill/media.html' %} <title> TUT </title> </head> <body> <form role="form" method="POST"> <legend>Form Title</legend> {% csrf_token %} {{form}} <button type="submit" class="btn btnprimary">Submit</button> </form> </html>
여기에서 백엔드에서 보내는 양식을 렌더링했습니다.
views.py에서 , 다음 줄을 추가하십시오 -
from django.shortcuts import render from django import forms from .models import another_model class NewForm(forms.ModelForm): class Meta: model=another_model fields="__all__" def home(request): if request.method =="POST": form=NewForm(request.POST) if form.is_valid(): form.save() form=NewForm() return render(request,'home.html',{"form":form})
여기에서 양식을 만든 다음 홈 뷰를 사용하여 렌더링했습니다. POST 보기를 처리하기 위해 양식 데이터의 유효성을 검사한 다음 저장했습니다.
models.py에서 다음 줄을 추가하십시오 -
from django.db import models from django_quill.fields import QuillField class another_model(models.Model): name = models.CharField(max_length=200) place = models.CharField(max_length=100) animal = models.CharField(max_length=100) thing = models.CharField(max_length=100) content = QuillField(blank=True)
여기에서 모델을 만들고 그 안에 텍스트 편집기의 데이터를 저장할 텍스트 편집기 필드를 만들었습니다.
출력