【Django×Quill】リッチテキストエディタを使用してDjangoでライターが編集可能なブログページを作成する

Quillを使用してDjangoでライターが編集可能なブログページを作成する際には、以下の手順を考慮して実装することができます。

  1. Quillエディタのインストール:
    QuillエディタのJavaScriptとCSSファイルをプロジェクトにインクルードします。これを行う一般的な方法は、Quillのウェブサイトからこれらのファイルをダウンロードするか、CDNを使用することです。
<!-- HTML header -->
<link href="https://cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet">
<script src="https://cdn.quilljs.com/1.3.6/quill.js"></script>
  1. Djangoモデルの作成:
    ブログ投稿を保存するためのDjangoモデルを作成します。
# models.py
from django.db import models

class BlogPost(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
  1. Djangoフォームの作成:
    ブログ投稿を編集するためのDjangoフォームを作成します。
# forms.py
from django import forms
from .models import BlogPost

class BlogPostForm(forms.ModelForm):
    class Meta:
        model = BlogPost
        fields = ['title', 'content']
  1. Quillエディタの初期化:
    HTMLテンプレートでQuillエディタを初期化し、ブログ投稿のコンテンツを編集するためのエディタをセットアップします。
<!-- HTML body -->
<div id="editor">
  {{ form.content.value|safe }}
</div>

<script type="text/javascript">
  var quill = new Quill('#editor', {
    theme: 'snow'
  });
</script>
  1. コンテンツの保存と取得:
    JavaScriptを使用してQuillエディタからコンテンツを取得し、Djangoフォームを通じてサーバーに送信します。また、サーバーからコンテンツを取得してエディタにロードします。
// On form submit
document.querySelector('form').onsubmit = function() {
  var contentInput = document.querySelector('input[name="content"]');
  contentInput.value = quill.root.innerHTML;
};

// Load content from server
var content = "{{ form.content.value|safe }}";
quill.root.innerHTML = content;
  1. CSSのカスタマイズ:
    必要に応じて、CSSをカスタマイズしてエディタと表示画面の見た目を揃えます。

これらの手順を通じて、Quillエディタを使用してDjangoでライターが編集可能なブログページを作成し、表示画面と編集画面の見た目を揃えることができます。また、プロジェクトの要件に応じて、これらの手順をカスタマイズし、追加の機能やスタイリングを実装することも可能です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

WordPress開発歴6年。
ベンチャー企業のオウンドメディア開発、中古車検索サイトの開発、WooCommerceを用いたECサイト開発、会員登録機能付きのサイト開発、求人検索サイトの開発など、多くのWordPressサイトを開発してきました。MVPではじめて運用に合わせて拡張保守していくスタイルのアジャイル開発が可能なので、100万円程度のご予算でも新規事業開発を立ち上げることが可能です。

目次