Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะเพิ่มฟิลด์แก้ไขข้อความใน Django ได้อย่างไร?


เว็บไซต์สอบออนไลน์หลายแห่งใช้โปรแกรมแก้ไขข้อความสำหรับการป้อนข้อความ การอัปโหลดรูปภาพ ฯลฯ ขนนก โปรแกรมแก้ไขข้อความเป็นที่นิยมอย่างมาก และยังมีฟิลด์โมเดลสำหรับจัดเก็บในฐานข้อมูลโดยตรง ดังนั้น คุณไม่จำเป็นต้องกำหนดค่าอะไรเพิ่มเติมเพื่อบันทึกข้อมูลในฐานข้อมูล

ในบทความนี้เราจะมาดูวิธีการสร้างฟิลด์แก้ไขข้อความใน 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

ตัวอย่าง

urls.py ของแอป n , เพิ่มต่อไปนี้ −

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)

ที่นี่เราสร้างโมเดล และในนั้น เราสร้างฟิลด์แก้ไขข้อความ ซึ่งจะเก็บข้อมูลของโปรแกรมแก้ไขข้อความของเรา

ผลลัพธ์

จะเพิ่มฟิลด์แก้ไขข้อความใน Django ได้อย่างไร?