Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để thêm trường soạn thảo văn bản trong Django?

Nhiều trang web tổ chức kỳ thi trực tuyến sử dụng trình soạn thảo văn bản cho các mục nhập văn bản. tải lên hình ảnh, v.v. Quill trình soạn thảo văn bản rất phổ biến và nó cũng cung cấp một trường mô hình để lưu trữ trực tiếp trong cơ sở dữ liệu. Vì vậy, bạn không cần phải định cấu hình thêm bất kỳ thứ gì để lưu dữ liệu của nó vào cơ sở dữ liệu.

Trong bài viết này, chúng ta sẽ xem cách tạo trường soạn thảo văn bản trong Django.

Trước hết, hãy tạo một dự án Django và một ứng dụng. Thực hiện một số cài đặt cơ bản như bao gồm url của ứng dụng. Tạo phương tiện ở cùng cấp của dự án và ứng dụng.

Trong settings.py , thêm -

INSTALLED_APPS = [ 'myapp.apps.MyappConfig', #django app
' django_quill' #module name]
.
.
.
.
..
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

Cài đặt django_quill gói -

pip install django_quill

Ví dụ

urls.py của ứng dụng , thêm phần sau -

from django.urls import path
from . import views
urlpatterns = [
   path('', views.home,name="home"),
]
urlpatterns += static(settings.MEDIA_URL,
                           document_root=settings.MEDIA_ROOT)

Ở đây, chúng tôi chỉ cần đặt chế độ xem chính của chúng tôi trên url và url thư mục phương tiện.

Bây giờ, hãy tạo mẫu trong thư mục của ứng dụng và tạo home.html tập tin trong đó. Thêm các dòng sau vào 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>

Tại đây, chúng tôi đã hiển thị biểu mẫu mà chúng tôi gửi từ chương trình phụ trợ của chúng tôi.

Trong views.py , thêm các dòng sau -

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})

Ở đây, chúng tôi đã tạo một biểu mẫu và sau đó chúng tôi hiển thị nó bằng cách sử dụng chế độ xem tại nhà. Xử lý chế độ xem POST, chúng tôi đã xác thực dữ liệu biểu mẫu và sau đó lưu nó.

Trong models.py, thêm các dòng sau -

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)

Ở đây, chúng tôi đã tạo một mô hình và trong đó, chúng tôi tạo trường soạn thảo văn bản, trường này sẽ lưu trữ dữ liệu của trình soạn thảo văn bản của chúng tôi.

Đầu ra

Làm cách nào để thêm trường soạn thảo văn bản trong Django?