یک توسعه‌دهنده

یک توسعه دهنده که بیشتر از توسعه،‌ فیلم می‌بینه و کتاب می‌خونه :)

نکته‌های جنگویی - ویرایشگر ckeditor

چهارشنبه, ۵ شهریور ۱۳۹۹، ۰۴:۴۰ ب.ظ

در ادامه‌ی نکته‌های جنگویی در این قسمت به سراغ اضافه کردن یه ویرایشگر به‌جای TextArea میریم.

برای استفاده از ویرایشگر ckeditor اول باید کتابخونه‌اش رو نصب کنیم:

 pip3 install django-ckeditor

بعد از نصب به INSTALLED_APPS اضافه‌ش میکنم:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    # My Django apps
    'stories.apps.StoriesConfig',

    # Thord-Party apps
    'crispy_forms',
    'ckeditor',
]

در پایین صفحه‌ی تنظیمات، تنظیمات مربوط به ckeditor اضافه میکنم:

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')


# CKEDITOR
CKEDITOR_UPLOAD_PATH = "uploads/"
CKEDITOR_CONFIGS = {
    'default': {
        'toolbar': 'full',
    },
}

چون ممکنه حین نوشتن متن، تصاویری رو هم به متن اضافه کنیم نیازه که تنظیمات مربوط به media رو هم اضافه کنیم. به A/urls.py میرم و url مربوط به ckeditor رو اضافه می‌کنم:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),

    # Third-Party urls
    path('ckeditor/', include('ckeditor_uploader.urls')),

    # My apps urls
    path('', include('stories.urls')),
]

حالا به stories/models.py میرم و فیلد RichTextUploadingField رو به مدلم اضافه میکنم و به‌جای TextField قرارش میدم:

from django.db import models
from django.contrib.auth.models import User
from ckeditor_uploader.fields import RichTextUploadingField

class Story(models.Model):
	user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='user_stories')
	title = models.CharField(max_length=100)
	slug = models.SlugField(max_length=100, unique=True)
	body = RichTextUploadingField()
	created = models.DateTimeField(auto_now_add=True)
	updated = models.DateTimeField(auto_now=True)
	status = models.BooleanField(default=True)


	class Meta:
		verbose_name_plural = 'stories'
		ordering = ('-created', )
		
	def __str__(self):
		return self.title

حالا انتظار میره که با اجرا کردن پروژه، در پنل اضافه کردن داستان، فرمی مشابه تصویر این پست داشته باشید.

از این ویرایشگر در فایل add.html هم می‌تونید استفاده کنید که اگر مطلب قبل رو خونده باشید، با یک کم دستکاری و آزمون خطا می‌تونید ازش استفاده کنید، این نکته‌ای بود که خودم حین دستکاری یادش گرفتم =)

 

پ.ن. ۱: پایه‌ی مطالب.

پ.ن. ۲: لینک django ckeditor که می‌تونید برید و کامل در موردش بخونید.

و به پایان این مطلب رسیدیم./

نظرات (۰)

هیچ نظری هنوز ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی

تمام حقوق مادی و معنوی این وبلاگ متعلق به وبلاگ سرزمین برنامه نویسی بوده و هر گونه کپی بردای بدون ذکر منبع غیرمجاز و از نظر ما حرام است