कई ऑनलाइन परीक्षा लेने वाली वेबसाइट्स टेक्स्ट एंट्री, इमेज अपलोडिंग आदि के लिए टेक्स्ट एडिटर्स का उपयोग करती हैं। Quill टेक्स्ट एडिटर बहुत लोकप्रिय है और यह डेटाबेस में सीधे स्टोर करने के लिए एक मॉडल फील्ड भी प्रदान करता है। इसलिए, आपको इसके डेटा को डेटाबेस में सेव करने के लिए कुछ भी अतिरिक्त कॉन्फ़िगर करने की आवश्यकता नहीं है।
इस लेख में, हम देखेंगे कि Django में टेक्स्ट एडिटर फील्ड कैसे बनाया जाए।
सबसे पहले, एक Django प्रोजेक्ट और एक ऐप बनाएं। ऐप के urls शामिल करने जैसी कुछ बुनियादी सेटिंग्स करें। प्रोजेक्ट और ऐप के समान लेवल पर एक media फोल्डर बनाएं।
settings.py में, जोड़ें:
INSTALLED_APPS = [
'myapp.apps.MyappConfig', # django app
'django_quill' # मॉड्यूल नाम
]
...
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
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('', views.home, name="home"),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
यहां हमने बस अपने मुख्य व्यू को url पर सेट किया और मीडिया फोल्डर url।
अब, ऐप की डायरेक्टरी में एक 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>
</body>
</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)
यहां हमने एक मॉडल बनाया और इसमें टेक्स्ट एडिटर फील्ड बनाया, जो हमारे टेक्स्ट एडिटर का डेटा स्टोर करेगा।
आउटपुट
