Python
 Computer >> コンピューター >  >> プログラミング >> Python

Djangoでテキストエディタフィールドを追加するにはどうすればよいですか?


多くのオンライン試験受験ウェブサイトは、テキスト入力にテキストエディタを使用しています。画像のアップロードなど。Quill テキストエディタは非常に人気があり、データベースに直接保存するためのモデルフィールドも提供します。したがって、データベースにデータを保存するために特別な設定を行う必要はありません。

この記事では、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

nアプリのurls.py 、次を追加します-

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でテキストエディタフィールドを追加するにはどうすればよいですか?


  1. tkinterのエントリにプレースホルダーを追加するにはどうすればよいですか?

    Tkinterは、ボタン、テキスト、エントリ、ダイアログ、およびアプリケーションの開発に役立つその他の属性などのウィジェットを追加する機能を提供します。ただし、tkinterはエントリーウィジェットにプレースホルダーを含めません。プレースホルダーは、ユーザーに通知するためにエントリウィジェットに表示されるダミーテキストです。 この記事では、 insert(default value、text)を使用して、エントリウィジェットにプレースホルダーを追加します。 プレースホルダーテキストとともに0などのデフォルト値をとる関数。 例 #Import tkinter library from tkin

  2. Googleフォームの質問に説明を追加する方法

    Googleフォームに新しい質問を追加すると、説明ボックスが表示されないことに驚かれることでしょう。では、他のフォームに表示されるGoogleフォームの質問にどのように説明を追加するのでしょうか。手始めに、目的のためにスクリプトやアドオンをインストールする必要はありません。設定からGoogleフォームの質問に手動で説明を追加する必要があります。 PCのGoogleフォームの質問に説明を追加 説明を追加するGoogleフォームを開きます。フォームの編集権限があることを確認してください。編集権限を持たないユーザーは、フォームを編集することはできません。 フォームが開いたら、質問をクリックして