如何在 Django 中添加文本编辑器字段?
server side programmingprogrammingpython
许多在线考试网站使用文本编辑器输入文本、上传图片等。Quill 文本编辑器非常流行,它还提供了一个模型字段,可直接存储在数据库中。因此,您无需配置任何额外内容即可将其数据保存在数据库中。
在本文中,我们将了解如何在 Django 中创建文本编辑器字段。
首先,创建一个 Django 项目和一个应用程序。进行一些基本设置,例如包括应用程序的 url。在项目和应用的同一层级上创建一个 media 文件夹。
在 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
示例
在应用程序的 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 上设置主视图。
现在,在 app 目录中创建一个 templates 文件夹,并在其中创建 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})
在这里我们创建了一个表单,然后使用 home 视图对其进行了渲染。为了处理 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)
在这里我们创建了一个模型,并在其中创建了文本编辑器字段,它将存储我们的文本编辑器的数据。